SQL请求头注入

 请求头注入

  请求头注入就是将http请求中的一些头部进行注入,因为这些头部和数据库产生了交互,那么它们就有可能存在注入。下面是一个http请求,让我们看一

  

可能存在注入的点:

  ①Host(主机头)

  在http1.0中没有Host字段,在http1.1中,增加这个字段,http协议的本质是建立tcp连接,而建立连接则需要知道对方的IP和端口号,然后才能发送数据建立连接。所有Host头域指定请求资源的Internet主机和端口。host头主要是用来将请求分派到指定的wen页面或者网站,它的IP来自于网络层和传输层,对于http协议来说,它是基于tcp/ip的一个封装

  在http1.1中不能缺少Host字段,缺少host字段服务器会返回400 bad request ,http1.0虽然不能缺少Host字段,但是该字段可以为空。

  既然host头来自于客户,由客户端提供,而且可以修改,那么它是不可信的。当Host头部被修改为无效Host头会发生什么情况?大多数web服务器配置为将无法识别的Host头传送给列表中的第一台虚拟主机或者返回错误信息。因此,这使得把携带有任意Host头的请求发送到第一台虚拟主机上是可能的。

  例如下面,很多host都不做HTML编码,便直接输出到页面,当host 被改为恶意连接时,出发恶意请求,容易造成缓存污染和密码重置这两种攻击

  <link href=http://_SERVER["HTTP_HOST"]></link>    //触发一个get请求

  <form method=”POST”></form>                       //触发POST请求

  

  ②User-agent(用户代理,识别用户的浏览器版本,操作系统等信息)

  User-Agent的两种场景,一是记录访问者的信息,如浏览器类型版本号等,二是获取用户的user-agent,然后根据信息来推送不同的页面,例如手机页面,各个浏览器页面等,这是已经进行了数据库的入库和查询操作,如果没对此进行过滤,漏洞产生。

  

  ③Cookie(储存在用户本地终端上的数据)

  ④referer

  ⑤X-Forwarded-For  

  XFF头,它代表客户端,也就是HTTP的请求端真实的IP,(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据 库or某文件[通过修改XXF头可以实现伪造IP])。     当你对一个网站进行爆破或大量访问时,浏览器可能会限制你的访问,他通过什么来限制呢,http是无状态连接,而且自 己也清掉了cookie信息,浏览器是如何限制自己的

  首先当你有攻击行为的时候,服务器一般会把恶意用户的ip存入数据库。当每次用户请求的时候(以java语言为例),服 务器通过request.getRemoteAddr()这个方法来获取请求者的ip。于是想到这个ip我们自己到底能不能伪造?答案是否定的。因为 经过测试request.getRemoteAddr并不会回从数据包的请求头去获取ip字段的Value。所以推测ip地址是ip包中的soure来的,当我 们发送http请求时是否可以更新soure ip来绕过限制呢,这个可以有!,但是你将不会收到对方的响应,因为在正常的TCP/IP通信 中,伪造数据包来源 IP会让发送出去的数据包返回到伪造的IP上,无法实现正常的通信。这样我们也就失去的绕过的意义。request.getRemoteAddr方法我们没办法伪造,是不是我们就无法利用这个点了呢?  

  结合实际一般程序员是不会通过request.getRemoteAddr方法来获取ip的,这个方法虽然获取的ip比较准确,暂无办法绕过。但实 际场景中往往服务器前面会有一个代理服务器和均衡负载服务器。当使用request.getRemoteAddr方法时,获取的只是代理服务器 的ip并不能获取请求者的真实ip。这时候一些程序员为了实现获取真实ip会获取XFF方法。

  综上所述,浏览器可以通过request.getRemoteAddr()方法获取请求者IP,但是实际场景中服务器前面往往存在代理服务器,负载 均衡等等,所以实际request.getRemoteAddr()不能获取到请求者的IP,那么它可能会获取X-Forwarded-For的内容

  ⑥Client-IP 同上

 

   判断注入点在哪里

  1、先一个个去掉请求包中的数据, 查看有哪些服务器是没有接受的,可以直接去掉的。过滤掉;

  2、然后具体对每一个请求头做出判断,将每一个请求头当做参数即可,然后打一些payload看是否产生报错

 

 

 

 

 

 

 

 

 

 

host头检测转载:https://www.jianshu.com/p/690acbf9f321

转载于:https://www.cnblogs.com/shuaixiaocao/p/11273935.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值