# 发布日期: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:俺是农村的。