| PHP168 SQL注射漏洞 |
|
| 作者:佚名 来源:安全在线
更新时间:2008-7-14 23:38:26 【字体:小
大】 |
|
<%=(int(rnd()*1)+1)%>您当前的位置:中国安全在线cnsafer.com 请进入[技术论坛]发表评论 漏洞说明:历经数年开发与完善的”PHP168整站系统”是国内最早的多功能模块化 网站管理软件系统;不仅适合于建设一般的企业、政府、学校、个人等小型网站,同时也适合于建设地区门户、行业门户、收费网站等大中型网站,80sec在其 产品中发现了一个严重的SQL注射漏洞,可能被恶意用户查询数据库的敏感信息,如管理员密码,加密key等等,从而控制整个网站。
漏洞厂商:http://www.php168.com
漏洞解析:在系统的jsarticle.php中,使用了urldecode用来解码用户提交的数据,但是在使用该函数之后并没有做进一步的有效性验证,从而导致精心构造的数据可以饶过系统的过滤以及php的Magic Quote保护,漏洞部分代码如下:
elseif($type==’like’) {
$SQL.=" AND aid!=’$id’ ";
if(!$keyword) { extract($db->get_one("SELECT keywords AS keyword FROM {$pre}article WHERE aid=’$id’")); }
if($keyword){ $SQL.=" AND ( "; $keyword=urldecode($keyword); $detail=explode(" ",$keyword); unset($detail2); foreach( $detail AS $key=>$value){ $detail2[]=” BINARY title LIKE ‘%$value%’ “; } $str=implode(” OR “,$detail2); $SQL.=” $str ) “; }else{ $SQL.=” AND 0 “; }
$ORDER=’ list ‘; }
if(!$webdb[viewNoPassArticle]){ $SQL.=’ AND yz=1 ‘; }
$SQL=” WHERE $SQL ORDER BY $ORDER DESC LIMIT $rows”; $which=’*’; $listdb=list_article($SQL,$which,$leng); keyword被urldecode然后进入list_article函数,提交%2527将导致一个’进入SQL查询
在artic_function.php中的list_article函数如下
function list_article($SQL,$which=’*’,$leng=40){ global $db,$pre; $query=$db->query("SELECT $which FROM {$pre}article $SQL"); while( $rs=$db->fetch_array($query) ){ if($rs[mid]){
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力 |
| 文章录入:ls1238 责任编辑:ls1238
|
|
上一篇文章: 简单分析SQL注入中对汉字的猜解
下一篇文章: 主流与非主流提权技术大全 |
| 【字体:小
大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】
|