background image

$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]){
$_rss=$db->get_one(”SELECT   *   FROM   {$pre}article_content_{$rs[mid]}   WHERE 
aid=’$rs[aid]‘ LIMIT 1″);
$_rss && $rs=$rs+$_rss;
}
$rs[content]=@preg_replace(’/<([^<]*)>/is’,”",$rs[content]);   //把 HTML 代码过滤掉
//如果文章有短标题,将以此显示在文章列表
if($rs[smalltitle]){
$title=$rs[smalltitle];
}else{
$title=$rs[title];
}
$rs[title]=get_word($rs[full_title]=$title,$leng);
if($rs[titlecolor]||$rs[fonttype]){
$titlecolor=$rs[titlecolor]?”color:$rs[titlecolor];”:”;
$font_weight=$rs[fonttype]==1?’font-weight:bold;’:”;
$rs[title]=”$rs[title]“;
}
$rs[posttime]=date(”Y-m-d”,$rs[full_posttime]=$rs[posttime]);
if($rs[picurl]){
$rs[picurl]=tempdir($rs[picurl]);
}
$listdb[]=$rs;
}
return $listdb;
}

直接进入 SQl 查询,导致注射漏洞的产生。
漏洞利用:80sec 提供攻击测试代码如下:

#!/usr/bin/php
<?php

print_r('