1.HTTP头注入
常见的sql注入一般是通过请求参数或者表单进行注入,而HTTP头部注入是通过HTTP协议头部字段值进行注入。http头注入常存在于以下地方
产生注入的条件:
- 能够对请求头消息进行修改
- 修改的请求头信息能够带入数据库进行查询
- 数据库没有对输入的请求信息做过滤
1. User-Agent注入
User-Agent:使得服务器能够识别客户使用的操作系统,浏览器版本等。(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等然后将其存入数据库中)。这里获取User-Agent就可以知道客户都是通过什么浏览器访问系统的,然后将其值保存到数据库中。
以sqli-labs less-18关为例,登录用户密码:dumb ,0
1.1 判断注入点:user-agent值后面加上',引发报错,确定存在sql注入
1.2 采用报错注入函数获取当前数据库名
' and updatexml(1,concat('^',(database()),'^'),1) and '