这是帝国的一套下载系统 如图 ps(不需要任何账户和密码,直接写shell) 文:西毒
由于很多站是由于下载要整合discuz 等等一些 论坛 .... 而帝国他又有一个万能接口,如图 而这个接口很多人又不会删除,由此他带来了很大的安全隐患,导致直接getshell,下面分析代码 当我们提交的时候,他地址是提交到index.php?install=1&setup=SetConfig
www.2cto.com
if($_GET['install']==1)
{
@include("class/connect.php");
@include("class/db_sql.php");
@include("class/functions.php");
$link=db_connect();
$empire=new mysql query();
if($setup=="SetConfig")
{
SetUserCOMConfig($_POST);
}
elseif($setup=="alter")
{
InstallUserCOM();
}
elseif($setup=="update")
{
UpdateUserCOM();
}
else
{}
他这里开始调用一个SetUserCOMConfig的函数了,我们继续跟踪 在data/fun.php中的15行 我们可以看到这个函数 function SetUserCOMConfig($add){ $filetext=ReadFiletext('data/user.php'); if(empty($filetext)) { InstallShowMsg('文件 /update/data/user.php 丢失,安装不成功.'); } $vr=explode(",",ReturnRepUserVar()); $count=count($vr); for($i=0;$i<$count;$i++) { $filetext=str_replace("[!@--".$vr[$i]."--@!]",$add[$vr[$i]],$filetext); } //写入配置文件 $fp=@fopen("class/user.php","w"); if(!$fp) { InstallShowMsg(' /class/user.php 文件权限没有设为0777,安装不成功.'); } @fputs($fp,$filetext); @fclose($fp); .../省略若干 这里的他将$filetext=str_replace("[!@--".$vr[$i]."--@!]",$add[$vr[$i]],$filetext); 他将传进来的变量进行了切割,然后赋给了$filetext 然后看下面 //写入配置文件 $fp=@fopen("class/user.php","w"); if(!$fp) { InstallShowMsg(' /class/user.php 文件权限没有设为0777,安装不成功.'); } @fputs($fp,$filetext); 打开了一个class/user.php文件,然后将$filetext写入了 转摘不注明作者的,烂jj 我们看看写入的结果,随便填一个 然后他就写到了class/user.php中了,所以0day就产生了 所以我们淫荡点,写个${@phpinfo()}试试 转摘不注明作者的,烂jj 然后访问以下class/user.php这个文件 不回复的也mjj 日了吧查看更多关于帝国万能接口带来的安全隐患 - 网站安全 - 自学的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did13465