HTTP头注入的发现和工具化利用

目前市面上web漏扫均可以轻易的检测出以GET或POST方式传参的sql注入点,在实际测试过程中,笔者发现多数漏扫检测HTTP头注入问题的能力还不是太理想,这里分享下笔者对于HTTP头注入的发现和利用过程,欢迎各位大牛批评指正。

0x01、HTTP头注入的发现

推荐使用安装了Modify Headers插件的火狐浏览器对目标站点进行信息收集,该插件可以自定义HTTP 头信息,截图如下:

界 面很简单,其中select action下拉单中的三个选项中modify比add优先级高,filter为过滤头字段操作,这里以新增http头字段X-Forwarded- For为例,下图红框中最前面选择add,紧跟着写入X-Forwarded-For,然后输入自定义的数值:我这里输入“x- for’;”>xxoo<!–”(不含引号),配置完成后依次点击save、确定即完成配置。

然后使用火狐浏览器浏览存在X-Forwarded-For sql注入漏洞的站点,这里笔者略微改动下dvwa,以配合测试,如图:

用配置好的火狐登录dvwa后,点击SQL injection选项,user id随便输入后点击submit,弹出典型的sql注入报错页面如图:

实际测试中,我们可以同时定义多个http head字段,然后浏览目标网站,进而发现漏洞,用该配置浏览器上网,常有意外收获,这里贴一张实测截图:

0x02、HTTP头SQL注入的工具化利用

漏洞发现了,下面讲讲利用。多数注入工具仅能覆盖http头中的cookie、user-agent等字段,对于X-Forwarded-For 等部分字段并不能全面覆盖。对于X-Forwarded-For sql注入,网上多是通过抓包增加“X-Forwarded-For :*”内容,然后利用Sqlmap –r 方式对其注入,笔者曾使用sqlmap1.0,同时测试变更level参数等操作,最终并未成功利用,这里还望实验成功的大牛指点。下面笔者介绍一个利用 寂寞的刺猬中转注入实现工具化利用的方法。 在寂寞的刺猬的中转注入代码中添加头字段”X-Forwarded-For”并赋值,值得注意的是这里不需要url编码和空格替换,代码略作修改后如下:

本地搭建后利用sqlmap测试如图:

Wireshake抓包可以看到http 注入包构造成功

0x03、写在最后

一切输入都是“有害”的。web数据交互不仅仅局限于GPC(get/post/cookie),网站从http头中收集用户信息已成主流,这部分信息同样会存在常规的sql注入、xss等安全问题。最后,提醒大家有一个字段叫X-UP-Calling-Line-ID。

【via@0x87-loudong360