2017 十一月 15
#现代cms框架审计系列# 海洋cms 6.55 版本系列,第一篇关于sql注入的,希望对大家有所帮助。[害羞] 代码审计之海洋cms 初级(SQL注入篇)

48852851825588

Wing

这个api开启的好像不多

@Wing
是啊,要管理员手动开启

Wing

@荣
后台登录地址看能不能绕过。哈哈。

网络小白

有点看不明白,为什么使用双引号就可以产生注入漏洞呢?

@网络小白
并不是使用双引号就产生注入漏洞,而是sql语句没有用单引号包裹着变量,比如 $sql .= " AND d.v_id in (". $ids .")"; 这个双引号只是用来拼接SQL语句而已,如果ids是1,2,3的话$sql的变量值就是 AND d.v_id in (1,2,3) 。 这样我们就可以形成payload,把sql语句改成 AND d.v_id in (1,2,3) or 1=1--) 如果拼接语句改成 $sql .= " AND d.v_id in ('". $ids ."')"; 在双引号前后添加了单引号。 这样就不会产生漏洞。同时sql语句也会报错,可能因为作者想不出其他办法所以就用这种方法来是实现 这种注入主要是没有单引号的防御,比如像 $row = $dsql->GetOne("Select * From `sea_myad` where aid='$id'"); 由于程序传参会经过addslashes函数,所以带有单引号的语句是无法注入成功。

网络小白

明白了,谢谢哈

@网络小白
[憨笑]