数据库
首页 > 数据库> > 小技巧分享:sql报错盲注

小技巧分享:sql报错盲注

作者:互联网

最近在挖洞的过程中发现了一个oracle的注入漏洞点,当sql语句不恰当的时候会出现报错信息,注入点位置在多层嵌套语句中的order by之后。

尝试使用报错注入的方式测试了多个函数,可惜都没有权限调用,语句也比较复杂,不好简单的强行闭合语句使用布尔来判断猜解查询的字符串内容。思考后利用了恶意的布尔型查询语句如果正确,会返回与期望返回的行数或列数不匹配的方法来直接对数据进行猜解

例如存在语句:

select id,name from user order by <用户注入点>

构造payload为  

(select 1 from all_tables where 1=decode(substr((select table_name from all_tables),0,1),a,1)

 

当decode语句为真的时候会返回错误 “单行子查询返回多行”

 

 而decode为假的时候数据则可以正常显示在页面中。与布尔盲注类似,通过二者的差异便可进行数据的猜解了。

 

标签:语句,返回,decode,报错,猜解,sql,盲注,select
来源: https://www.cnblogs.com/iceli/p/11240023.html