最土团购某基础函数过滤不全导致大量sql注入漏洞

没穿底裤 2020年1月1日04:24:26评论318 views字数 792阅读2分38秒阅读模式
摘要

include/library/DB.class.php(128-134):[php]
static public function GetDbRowById($table, $ids=array()) {


漏洞作者: menmen519

include/library/DB.class.php(128-134):

[php]
static public function GetDbRowById($table, $ids=array()) {

$one = is_array($ids) ? false : true;

settype($ids, 'array');

$idstring = join('/',/'', $ids);

if(preg_match('/[/s]/', $idstring)) return array();

$q = "SELECT * FROM `{$table}` WHERE id IN ('{$idstring}')";

$r = self::GetQueryResult($q, $one);
[/php]

 

发现传递进来的参数,进行处理后变为$idstring ,在此期间 只是做了空格检测,并没有做其他特殊字符的过滤,然后直接进入查询,故而导致sql注入

辐射的文件有:

account/bindmobile.php
ajax/chargecard.php
ajax/coupon.php
api/call.php
......

 

拿其中第一个举例说明:

[php]
<?php

require_once(dirname(dirname(__FILE__)) . '/app.php');

if ( $_POST ) {

$userid = $_POST['userid'];

$update['mobile'] = $_POST['mobile'];

$user = Table::Fetch('user', $userid, 'id');
[/php]

 

这里$userid并没有做任何处理,就传递过去了,我们构造url为

最土团购某基础函数过滤不全导致大量sql注入漏洞

 

通过监控器,发现sql语句完整执行:

SELECT * FROM `user` WHERE id IN ('sssssssssssssssssssss',sleep(5))#')

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
没穿底裤
  • 本文由 发表于 2020年1月1日04:24:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   最土团购某基础函数过滤不全导致大量sql注入漏洞https://cn-sec.com/archives/75659.html

发表评论

匿名网友 填写信息