WEB应用模糊测试(WEB Fuzz)是一种特殊形式的网络协议模糊测试,专门关注遵循HTTP规范的网络数据包。

WEB Fuzz并不是新的概念,目前有多种WEB应用模糊测试器(WEB Fuzzer),比如SPIKE Proxy、SPI Fuzzer、besTORM,以及渗透人员喜爱的Burp Suite。

在Fuzz请求完成后,目标应用发回来的响应提供了Fuzz请求所造成影响的各种线索。如果发现了异常,就可以确定于异常相关的请求。下面总结了一些响应信息,这些响应信息可能指示漏洞条件的存在:

  1. HTML状态码
  2. 响应中的错误信息
  3. 响应中包含的用户输入
  4. 性能下降
  5. 请求超时
  6. WEB Fuzzer错误信息
  7. 处理或者未处理的异常

下面分别详细展开讨论:

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种响应的更多相关文章

  1. wemall app商城源码中android按钮的三种响应事件

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码中android按 ...

  2. ASP.NET Web API中实现版本的几种方式

    在ASP.NET Web API中,当我们的API发生改变,就涉及到版本问题了.如何实现API的版本呢? 1.通过路由设置版本 最简单的一种方式是通过路由设置,不同的路由,不同的版本,不同的contr ...

  3. Web项目中JSP页面的一种调试方法与出现的问题 -- SpringMVC架构测试

    在前端开发中,尤其是MVC架构多人开发,负责前端的童鞋总是需要做静态页面,再和后台连接前无法使用变量如EL表达式等测试功能,所以本人引入了一个模板jsp数据测试专用文件,专门配置所有的变量,然后在待测 ...

  4. java web 项目中获取当前路径的几种方法

    1.jsp中取得路径:   以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp (2)得到工程名:req ...

  5. web.config中配置数据库连接的两种方式

    在ASP.NET中有两种配置数据库连接代码的方式,它们分别是 appSettings 和 connectionStrings .在使用 appSettings 和 connectionStrings ...

  6. Web.config中appSettings节点值两种读取方法

        <appSettings>    <add key="ClientPort" value="5252"/>   <add ...

  7. ASP.NET web.config中的连接字符串

    在ASP.NET的web.config中,可以用两种方式来写连接字符串的配置. <configuration> <appSettings> <add key=" ...

  8. 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 重点: 实现多级子目录的压缩, ...

  9. 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

    在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...

随机推荐

  1. 红帽学习笔记[RHCSA] 第五课[用户、权限相关]

    第五课 用户权限 查看文件的权限 [kane@localhost /]$ ll total 36 ----------. 1 root root 1751 Aug 22 20:58 ~ lrwxrwx ...

  2. git自动上传脚本及基本代码

    git_auto.bat git add . git add -A git add -u git commit -m "text" git pull --rebase origin ...

  3. 分享一个linux系统中循环遍历两个数组内容,并输出数组中的不同内容的shell脚本

    cat diffarray.sh #!/bin/bash arry_list1=(1 2 3 4 5 6 7 8 9) arry_list2=(3 5 8) declare -a diff_list ...

  4. [19/05/29-星期三] JavaScript_ 函数的简介

    一.函数的简介 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...

  5. 【监控笔记】【3.1】DML(CDC)、DDL(DDL触发器)跟踪数据更改,数据库审计

    关键词:数据库审计.DDL审计.DML审计 [监控笔记][3.1]DML(CDC).DDL(DDL触发器)跟踪数据更改 [1]DML(CDC) 2008及以上 https://www.cnblogs. ...

  6. 自动构建War包的Ant build.xml模板

    <?xml version="1.0" encoding="UTF-8" ?> <project name="[*****]你的项目 ...

  7. 高级BASH

    Bash介绍与入门 1,简介 Bash(GNU Bourne-Again Shell)是一个为GNU计划编写的Unix shell,它是许多Linux平台默认使用的shell shell是一个命令解释 ...

  8. Tarjan水题系列(3):HNOI2006 潘多拉的魔盒

    题目: 链接 大意: 盒子与盒子之间的关系构成一个有向图 求图上包含节点数最多的路径的节点数 思路: 有向图上求包含节点数最多的路径的节点数 可直接使用tarjan缩点后拓扑dp求得 在此不赘述 此题 ...

  9. 环境变量和Path环境变量

    环境变量 百度百科下的定义 一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等. 环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所 ...

  10. win 10 自带 Ubuntu 系统的文件位置

    win 10 自带 Ubuntu 系统的文件位置 Ubuntu 作为最为流行 Linux 系统中的一种,是用来学习 Linux 相关知识是最好不过的选择.专门搞一个 Ubuntu 系统的电脑不太现实, ...