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项目中我们也可以采用这种方式实现混合式的接入方式 ...
随机推荐
- 004 gcc 编译 C/C++ 默认使用哪个标准
0. 前言 我挺久没碰 C,不想就这么忘了,最近重温了一些相关知识 1. C 语言的几种"方言" 简单地说,有这么几种常见的 年份 名称 1983 ANSI C 1987 C87 ...
- [转帖]Linux shell中2>&1的含义解释 (全网最全,看完就懂)
Linux shell中2>&1的含义解释 (全网最全,看完就懂) https://blog.csdn.net/zhaominpro/article/details/82630528 ...
- 获取kafka最新offset-scala
无论是在spark streaming消费kafka,或是监控kafka的数据时,我们经常会需要知道offset最新情况 kafka数据的topic基于分区,并且通过每个partition的主分区可以 ...
- 源码编译Redis Desktop Manager | 懒人屋
原文:源码编译Redis Desktop Manager | 懒人屋 源码编译Redis Desktop Manager 2.3k 字 10 分钟 2019-10-10 文章背景 本 ...
- Pose &&Get的区别
从一个页面转向另一个页面的请求方式有两种,Post和Get. 如果从原理上来探究他们的区别,涉及到Http传输协议的细节,本文不加探究,只讨论一下表象. 1.Post传输数据时,不需要在URL中显示出 ...
- 使用NPOI读取Excel数据并写入SQLite
首先,我们来建一个数据库,我们就叫Hello.db(不一定是db后缀,你可以sqlite,sqlite3,db3)都可以作为识别,然后往里面建一个空的表格,如下图所示 然后建一个Excel表格,往表格 ...
- Docker数据目录相关操作
数据目录挂载 我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器.使用 -v 选项 docker run -id -v /宿主机绝 ...
- Linux 设置定时清除buff/cache的脚本
Linux 设置定时清除buff/cache的脚本 查看内存缓存状态 [root@heyong ~]# free -m total used free shared buff/cache availa ...
- Nginx 配置状态信息虚拟主机
可以在浏览器中查看并发数量 [root@Liangenyu conf]# vim nginx.conf server { listen 80; server_name status.etiantian ...
- JavaEE高级-SpringMVC学习笔记
*SpringMVC概述 - Spring为展示层提供的基于MVC设计理念的优秀Web框架,是目前最主流的MVC框架之一 - Spring3.0后全面超越Struts2,成为最优秀的MVC框架 - S ...