原理
有些时候,后台开发人员为了验证客户端头信息(比如常用的cookie验证),或者通过http header头信息获取客户端的一些资料,比如useragent、accept字段等。会对客户端的http header信息进行获取并使用sql进行处理,如果此时没有足够的安全考虑则可能会导致基于http header的sql inject漏洞。
适用场景:
网站会读取用户的一些信息
使用:
sql-labs第十八关,发现她会抓取我们的ip,那么我们就可以用burp抓包,将代理模块的http历史记录中抓取的信息发送到repeater,在User-agent下修改语句,利用报错注入或者union注入,第十八关用的是报错注入
看一下代码:
$uagent = $_SERVER['HTTP_USER_AGENT'];
通过$_SERVER来获取HTTP_USER_AGENT信息再赋值到$uagent
再看代码:
$insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)";
他将我们的uagent插入到security中的uagents表中
如果要直接登录可以在User-agent处使用万能密码登陆后台
注入的话就用报错注入就行