一、宽字节注入
1.宽字节注入原理
宽字节注入有addslashes,mysql_real_escape_string,mysql_escape_string等转义的函数,对输入'进行了转义\'
在这个靶场是addslashes(),这个函数对这些进行了转义
- 单引号(')
- 双引号(")
- 反斜杠(\)
- NULL
但是在下方设置编码时设置为了gbk编码,
利用反斜杠编码为%5c,这里用%df构成(連)字绕过对 ' 的转义
2.首先利用burp抓包
然后用
1%df' union select 1,2#
进行注入判断对行数(有回显)
3.之后就用字符型注入的payload即可
(1)查看数据库名字和用户
(2)查看所有数据库
4.错误分析
(1)但是在宽字节注入中用这个语句会出现问题
kaobe%df' union select 1,table_name from information_schema.tables where table_name='users'#
原因:因为在后面用了',addslashes()对'进行了转义,所以造成错误
(2)在页面进行语句注入时也是会出现注入不成功的现象
这里是在传入request数据包时,对我们所输的数据进行了url编码
%df被转移成了%25df
二、盲注
1.在这个靶场的布尔型注入中我们也可以用联合查询注入
例如:查询pikachu数据库第一个表名
1sadda' union select 1,table_name from information_schema.tables where table_schema='pikachu' limit 0,1#