WEB Fuzz中需要关注的7种响应
WEB应用模糊测试(WEB Fuzz)是一种特殊形式的网络协议模糊测试,专门关注遵循HTTP规范的网络数据包。
WEB Fuzz并不是新的概念,目前有多种WEB应用模糊测试器(WEB Fuzzer),比如SPIKE Proxy、SPI Fuzzer、besTORM,以及渗透人员喜爱的Burp Suite。
在Fuzz请求完成后,目标应用发回来的响应提供了Fuzz请求所造成影响的各种线索。如果发现了异常,就可以确定于异常相关的请求。下面总结了一些响应信息,这些响应信息可能指示漏洞条件的存在:
- HTML状态码
- 响应中的错误信息
- 响应中包含的用户输入
- 性能下降
- 请求超时
- WEB Fuzzer错误信息
- 处理或者未处理的异常
下面分别详细展开讨论:
HTML状态码
HTML状态码是一种重要信息,它提供了快速判断对应的请求是成功还是失败的指示。因此,WEB Fuzzer解析原始响应,得到状态码,然后在一个显示响应详细信息的列表中将其单独展示出来。通过THML状态码信息,用户能够快速确定需要进一步详细检查的响应部分。
响应中的错误信息
从设计上来说,WEB服务器一般都会在动态生成的网页中包含错误信息。如果一个WEB服务器在生产环节中启动不当,启用了调试功能,就会发生这种情况。以下是一个典型的透露了太懂信息的例子:当验证错误时,WEB应用给出的错误信息是“密码不正确”而不是“用户或密码不正确”。如果攻击者试图通过暴力方法强行破解某个WEB应用的登陆密页面,“密码不正确”的错误消息就会告诉攻击者输入的用户名存在,只是密码不正确。这使得未知参数有两个(用户名和密码)减少为一个(密码),极大地增加了攻击者进入系统的可能。在识别SQL注入攻击时,应用的错误信息同样特别有用。
响应中包含的用户输入
如果动态生成的WEB页面包含用户输入的数据,就有可能产生XSS漏洞。WEB应用的设计者应当过滤用户的输入,以确保不会发生这类攻击。但是,WEB应用没有进行核实的过滤是个常见的问题。因此,如果在HTML响应信息中找到了WEB Fuzzer提供的数据,那就表面应当测试应用中的XSS漏洞。
性能下降
尽管通过其表现形式(直接的应用崩溃),我们很容易识别DoS攻击,但DoS漏洞则微妙得多。性能下降通常表明应用可能易于收到Dos攻击。请求超时是一种发现性能下降的方法,但是在Fuzz的过程中,还应当使用血能监视器检查问题,如过高的CPU使用率或内存使用率。
请求超时
参考上一条,不能忽视请求超时,因为它们可能表示存在临时或者永久的Dos条件。
WEB Fuzzer错误信息
WEB Fuzzer有它子的错误处理方式,当某些特定函数执行失败时,它会弹出错误信息。例如,如果目标服务器因为前一个Fuzz请求而线下,WEB Fuzzer可能会给出一个错误信息,表明无法链接到目标服务器。这意味着可能发生了DoS攻击。
处理或未被处理的异常
当对WEB应用进行Fuzz时,可能会在应用本身以及它运行的服务器上都发现漏洞。因此,监视服务器多的状态也很重要。尽管WEB服务器返回的响应信息为我们提供了发现潜在漏洞的信息,但它们并没有揭示全部问题。如果输入稍加变化,Fuzz请求极可能会导致处理或未被处理的异常,从而导致可被利用的条件。因此,在Fuzz过程中,建议在目标WEB服务器上连接一个单独的调试器,这样就能够识别这些异常,比如FileFuzz和COMRaider,都带有内置的调试功能。WEB Fuzzer并不需要调试功能呢,因为WEB Fuzzer不需要反复地启动和中止一个应用。我们的方法是向某个Web应用发送一系列的fuzz请求,服务器会持续运行并相应这些请求,并阻止导致Dos的输入。
参考:《模糊测试》
来源 http://www.rootat.net/2016/03/10/WEBFuzzresponse/
WEB Fuzz中需要关注的7种响应的更多相关文章
- wemall app商城源码中android按钮的三种响应事件
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码中android按 ...
- ASP.NET Web API中实现版本的几种方式
在ASP.NET Web API中,当我们的API发生改变,就涉及到版本问题了.如何实现API的版本呢? 1.通过路由设置版本 最简单的一种方式是通过路由设置,不同的路由,不同的版本,不同的contr ...
- Web项目中JSP页面的一种调试方法与出现的问题 -- SpringMVC架构测试
在前端开发中,尤其是MVC架构多人开发,负责前端的童鞋总是需要做静态页面,再和后台连接前无法使用变量如EL表达式等测试功能,所以本人引入了一个模板jsp数据测试专用文件,专门配置所有的变量,然后在待测 ...
- java web 项目中获取当前路径的几种方法
1.jsp中取得路径: 以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp (2)得到工程名:req ...
- web.config中配置数据库连接的两种方式
在ASP.NET中有两种配置数据库连接代码的方式,它们分别是 appSettings 和 connectionStrings .在使用 appSettings 和 connectionStrings ...
- Web.config中appSettings节点值两种读取方法
<appSettings> <add key="ClientPort" value="5252"/> <add ...
- ASP.NET web.config中的连接字符串
在ASP.NET的web.config中,可以用两种方式来写连接字符串的配置. <configuration> <appSettings> <add key=" ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入
在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...
随机推荐
- 【嵌入式linux】用户登录密码验证配置
在配置BusyBox中配置登录密码: 配置位置BusyBox Setting --> General Configuration --> Suppo ...
- P2672跳石头
这是2015noip的一道二分答案的题目,看了题解才会,, 题目给出石头的位置并且让你踩着石头往前跳,最多删掉m个石头还可以顺利通过,求解最短跳跃距离的最大值. 那么二分什么呢:mid为跳跃的长度.那 ...
- 【LGR-065】洛谷11月月赛 III Div.2
临近$CSP$...... 下午打了一发月赛,感觉很爽. 非常菜的我只做了前两题......然而听说前两题人均过...... 写法不优秀被卡到$#1067$...... T1:基础字符串练习题: 前缀 ...
- 快速查看php文档技巧
在php源码中看到注释中的相关链接后 Ctrl+鼠标,浏览器打开 将输入栏的“en”改为“zh”即可变为中文文档,其他语言类推
- Scrapy 教程(五)-分页策略
scrapy 爬取分页网站的策略 1. 检测当前页是否存在“下一页” 2. 如果存在,把“下一页”的链接交给本方法或者其他方法 3. 如果不存在,结束 图示 示例代码 def parse(self, ...
- php strpos() 函数介绍与使用方法详解
本文主要和大家介绍PHP中mb_strpos的使用技巧,通过使用语法以及实例给大家详细分析了用法,需要的朋友参考学习下.希望能帮助到大家.mb_strpos(PHP 4 >= 4.0.6, PH ...
- (ES6)数据处理常用工具方法收集(更新状态: on)
1. 扁平数组转成tree结构(来源: StackOverflow的印度老哥写的) // Data Set // One top level comment var comments = [{ id: ...
- msdn帮助,离线下载
这是我在msdn下载,如果要看msdn帮助,不是在线看就是visual studio 帮助那下载. 在网速不好的时候msdn看,会让人不爽. 帮助那个下载速度很慢,于是我就去下载离线. 因为微软看不到 ...
- 互联网技术笔试总通不过?leetcode刷对了么
https://36kr.com/p/5084645 Leetcode,绕都绕不过去的程序员刷题神器 编者按:本文来自逆行求职(ID:nixingjihua). 对所有求职技术岗位的童鞋来说,有这么一 ...
- python 编码解码
一种编码想要转成另一种编码,需要先解码成万国码:Unicode,然后再从Unicode转成其他编码. 例如GBK格式想要转成utf-8,需要先按照 gbk 的格式 decode 成 unicode,再 ...