来源:自学PHP网 时间:2015-04-17 14:47 作者: 阅读:次
[导读] 抽uchome两个老的SQL注入漏洞举例,漏洞很久以前就被人公布过了,两个SQL注入都在个人资料更新的流程里:注册变量的代码KEY的内容直接进入了$inserts数组foreach ($_POST[#39;friend#39;] as $ke...
抽uchome两个老的SQL注入漏洞举例,漏洞很久以前就被人公布过了,两个SQL注入都在个人资料更新的流程里:
注册变量的代码KEY的内容直接进入了$inserts数组 foreach ($_POST['friend'] as $key => $value) { $value = intval($value); $inserts[] = "('base','$key','$space[uid]','$value')"; } 直接进入INSERT语句的VALUES里 if($inserts) { $_SGLOBAL['db']->query("DELETE FROM ".tname('spaceinfo')." WHERE uid='$space[uid]' AND type='base'"); $_SGLOBAL['db']->query("INSERT INTO ".tname('spaceinfo')." (type,subtype,uid,friend) VALUES ".implode(',', $inserts));
……………..
注册变量的代码KEY的内容直接进入了$inserts数组 foreach ($_POST['info'] as $key => $value) { $value = getstr($value, 500, 1, 1); $friend = intval($_POST['info_friend'][$key]); $inserts[] = "('$space[uid]','info','$key','$value','$friend')"; } 直接进入INSERT语句的VALUES里 if($inserts) { $_SGLOBAL['db']->query("DELETE FROM ".tname('spaceinfo')." WHERE uid='$space[uid]' $_SGLOBAL['db']->query("INSERT INTO ".tname('spaceinfo')." (uid,type,subtype,title,friend) VALUES ".implode(',', $inserts));
分析代码后可以发现,这里是两个INSERT类型的SQL注入,$key注册的变量可以构造SQL语句注入,但是这里会受GPC影响,不过一些PHP低版本的$_POST等超级全局变量的KEY不受GPC影响。
这里我使用Acunetix Web Vulnerability Scanner的HTTP Editor和HTTP Sniffer完成。
由于uchome延续了discuz的一些安全措施,提交请求都验证了formhash,我们需要formhash构造请求,用HTTP Sniffer抓到个人设置页面的请求包,直接右键编辑这个包。
根据代码的上下文分析,我们需要构造 请求URL:cp.php?ac=profile&op=info 请求参数profilesubmit formhash info 满足这些变量和条件后就能进入程序的SQL注入漏洞代码段
from:RAyh4c的黑盒子
mysql暴错注入的科普 2 http://www.2cto.com/Article/201108/100723.html
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com