• 0×01 开发原因

话说使用wvs、appscan很多年,但发现wvs等大型扫描器扫描大型网络或伪静态太多的时候发现扫描非常慢,严重的还会卡死。

这2天研究了一下发现可以开发软件进行各种优化。于是我动手写了个软件。

  • 0×02 功能包括

冗余链接、冗余参数、多余参数(自己认为无用的参数也不会出现问题的参数)、绕关键字型waf、禁止扫描器发送某些包、扫描web宕机原因溯源等功能都是可以通过二次优化开发进行实现的。

其实原理很简单使用http proxy、socket5等代理进行拦截改包(类似burp或者中间人攻击)

  • 0×03 功能简介

冗余链接:防止大量重复url或url重写导致的大量伪静态页面。

冗余参数:例如news.php?id=1 id=2 …id=10000 这样会造成大量浪费无用带宽以及系统资源。

多余参数:无用参数例如form、timestamp、random 等增加扫描器检测时长。

绕关键字型waf:waf检测原理基本都是检测扫描器关键字进行的。

禁止扫描器发送某些包:例如包含一些不想触碰的文件。

扫描web宕机原因溯源:找出宕机原因进行修复。

  • 0×04 实现代码片段

绕过检测wvs关键字方法,通过删除wvs等扫描器头中包含关键字可绕过大多数waf(如果开启行为检测这个方法就不可以了,但国内防火墙很少有开启这个功能的)

 Request.headers.Remove("Acunetix-Aspect")
 Request.headers.Remove("Acunetix-Aspect-Password")
 Request.headers.Remove("Acunetix-Aspect-Queries")

冗余链接方法,通过获取wvs request的url在通过一些算法对url中的冗余url进行权值计算。

 Public linksfil As New HashSet(Of String)
       If linksfil.Contains(returnurl.GetHashCode) = False Then
          linksfil.Add(returnurl.GetHashCode)
Return True
            Else
                Return False
            End If

多余参数方法,和上面方法类似也是获取wvs request url后分析url参数是否存在在list中对应项,如果存在则删除。

    Public ExPre As New ConcurrentQueue(Of String)("from=,a=,b=,c=".Split(","))
               If ExPre.Contains(temp(i).ToLower.Substring(0, temp(i).IndexOf("=") + 1)) = False Then
                    Select Case z
                        Case 0
                            spdomain1 = url.Split("?")(0) & "?" & temp(i)
                        Case Else
                            spdomain1 &= "&" & temp(i)
                    End Select
                    z += 1
                End If

结束、跳过此次发包,通过对httprequest(你自己定义的http proxy|socket6函数)进行判断如果调用Ignore方法则直接结束这个发包Thread就可以了

If Request.Contains("this is test") = true Then
   Request.Ignore()
end if

宕机原意溯源这个就很简单了,直接保存每次request的raw http header,宕机的同时扫描也会time out 直接分析保存的raw http header 就可以找到关键部分

SaveRequest(AppDomain.CurrentDomain.BaseDirectory & "\test.txt")
  • 0×05 成品展示

测试站点:http://testphp.vulnweb.com/AJAX/index.php

优化前扫描url


优化后扫描url


上面是我想到的一些可以通过二次优化、开发实现的功能也许你有更好的功能或者思路可以在下面发评论。:)
MythHack@Gale Albatross Sec Team


评论区:
大安全: 在wv s中设置http代理 自己的程序当成转发就行了 [2015-09-18 17:43:16]
 

fengzheng126com: 您好,关于对WVS的二次优化,如何利用这些优化代码呢 [2015-01-26 15:27:18]

 

Comments
Write a Comment