| 关键词: nbsp acunetix http Aspect 1.1 文件 脚本 wvs 日志 参数 |
作者通过本地搭建环境,模拟wvs扫描,查看日志,从日志中分析 wvs的扫描特点,程序里面加以控制。 日志中wvs的扫描请求的特点是: 通过分析包的格式,前期的探测脚本http头带着的关键参数如下: GET /acunetix-wvs-test-for-some-inexistent-file HTTP/1.1Accept: acunetix/wvsExpect: <script>alert(12345)</script>Cookie: acunetixCookie=AAAAAAAA...N个A...AAAAAAAAGET /ClientAccessPolicy.xml HTTP/1.1 类似这样的查找robots.txt 各种 xml常见文件GET /favicon.ico HTTP/1.1特别有意思的就是这个favicon.ico文件,在日志文件中发现这个文件被访问了N+1多次...POST https://localhost:8443/enterprise/control/agent.php HTTP/1.1ACUNETIX /9149447 HTTP/1.1HTTP_AUTH_LOGIN: 'HTTP_AUTH_PASSWD: acunetixClient-IP: SomeCustomInjectedHeader:injected_by_wvsReferer: ';print(md5(acunetix_wvs_security_test));$a='Accept: acunetix/wvsAcunetix-Aspect: enabledAcunetix-Aspect-Password: 082119f75623eb7abd7bf357698ff66cAcunetix-Aspect-Queries: filelist;aspectalerts前期扫描一些比较奇葩的漏洞都会带以下参数 Accept: acunetix/wvs后期的XSS和SQL扫描大概看了下特征的字符就是以下字符 Acunetix-Aspect:Acunetix-Aspect-Password:Acunetix-Aspect-Queries:思路: 检测HTTP头中的 参数:值 任意包含acunetix中就禁止访问,顺便再返回一个500服务器错误。 禁止的方法想了好几种,网上有关这个的就看到当初oldjun和heige的两个思路。不过貌似都不太适合,有兴趣的同学可以自己看看。 因为分析发现扫描过程中一些SQL注入脚本或者其他脚本是不包含以上提到的关键字。 因此想到利用session或者cookie来判断是否恶意请求,判断成立就500,是不是简单粗暴! 看看代码(相当简陋) if(isset($_COOKIE["PHPinfoTest"])) { header('HTTP/1.1 500 Internal Server Error'); exit(); }else{ foreach ($_SERVER as $key => $value) { If(strpos(strtolower($key),"acunetix")!==false||strpos(strtolower($value),"acunetix")!==false){ header('HTTP/1.1 500 Internal Server Error'); setcookie("PHPinfoTest","IZIEMILOULOAIXNAUHIXLOAIX",time()+60); exit(); } }} |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|