# 发布日期:2010-06.21
# 发布作者:俺是农村的
# 影响版本:Modoer 1.2.5
# 官方地址:http://www.modoer.com
# 漏洞描述:ajax.php 变量$keyid没任何过滤,造成SQL注入漏洞。
elseif($action == 'digg') {//提交action为digg,就行。By:俺是农村的。
$idtypes = array(
'article' => 'articles',
'shop' => 'shops',
);
$pks = array(
'article' => 'articleid',
'shop' => 'sid',
);
if(!array_key_exists($idtype, $idtypes)) dialog('操作提示', '未知的行为。');
if(empty($keyid) || $keyid < 0) dialog('操作提示', '对象ID不存在。'); //没过滤,直接带入查询。By:俺是农村的。
$tablename = $dbpre.$idtypes[$idtype];
$keyname = $pks[$idtype];
$detail = $db->get_one("SELECT $keyid,digg FROM $tablename WHERE $keyname='$keyid'");
if(empty($detail)) dialog('操作提示', '顶一下对象不存在或已删除。');
$digged = $_DCOOKIE['digg_'.$keyid] == 1;
if($digged) {
echo 'digg顶过了('.$detail['digg'].')';
} else {
$db->update("UPDATE $tablename SET digg=digg+1 WHERE $keyname='$keyid'");
set_cookie('digg_'.$keyid, '1', 24*3600);
echo 'digg谢谢支持('.++$detail['digg'].')';
}
output();
//转载请注明。By:俺是农村的。