Kali Linux Web渗透测试手册(第二版) – 9.7 – 通过HTTP头利用漏洞
- 2019 年 10 月 5 日
- 笔记
掣雷安全小组
翻译成员信息
thr0cyte,Gr33k,花花,
MrTools,R1ght0us,7089bAt
9.0、介绍
9.1、如何绕过xss输入验证
9.2、对跨站脚本攻击(xss)进行混淆代码测试
9.3、绕过文件上传限制
9.4、绕过web服务器的CORS限制
9.5、使用跨站点脚本绕过CSRF保护和CORS限制
9.6、利用HTTP参数污染
9.7、通过HTTP头利用漏洞
通过HTTP头利用漏洞
发人员在编程输入验证代码时,往往把重点放在url和请求数据中,经常会忽略这样一个事实:整个请求的参数都可以被修改,所以cookie等http头很容易被插入恶意payload
下面的教程中,我们将识别并利用能影响回显的http头
怎么做
我们回到Mutillidae中,这次我们将使用
OWASP 2013 | A1 - Injection(SQL) | BypassAuthentication | Login exercise靶机
1. 首先发送不存在的用户名和密码,显示登陆失败
2. 将该请求发送到repeater模块中
3. 在重放中,我们将测试user-agent的注入可能性,
将'+and+'1'='添加到user-agent头中
4. 比较两次响应的值我们会发现大了几个字节,如下截图所示:

5. 为了更加清晰明了的看出不同,我们将两次结果发送到comparer模块中

6. 点击words,比较回显中不同的字符
7. 将右下方的‘sync views’勾选上即可同步视图,在查找中,我们发现了两次结果的不同点:

8. 可以看到user-agent的值被返回到了浏览器页面上,所以猜测可能存在xss漏洞,下面我们来验证一下
9. 再次发送一个登陆请求,利用burp拦截下来。
10. 将 <img src=X onerror="alert('XSS')"> 添加进user-agent中:

11. 提交请求,我们可以发现payload被成功执行

原理剖析
在这节教程中,我们准备测试登陆表单中的sql注入漏洞,但是从结果回显来看可以发现输入被原封不动的返回到了页面中,所以我们又判断可能存在xss漏洞。接着我们插入<img>标签成功验证了猜想。