kavin

服务器流量异常追踪——抵抗AWVS扫描

kavin 安全防护 2022-12-26 346浏览 0

日前,笔者求教服务器流量异常处理,看了日志之后发现一坨扫描器留下的痕迹。发现了WVS的扫描记录,小小的日志文件都被撑成几G大了(服务器框架定义404页面,导致不存在的页面请求特别多)…

WVS确实是好东西,用来爬爬目录啥的最开心了,但是用来扫别人是挺开心的,自己被扫就不一样了…

所以就分析了一下其发包原理,想想怎么让它无法工作…

环境:

网上随便找了一个PHP的cms下载安装,开了WVS的本地代理,burpsutie抓包分析…

分析过程:

通过分析包的格式,前期的探测脚本http头带着的关键参数如下:

GET /acunetix-wvs-test-for-some-inexistent-file HTTP/1.1
Accept: acunetix/wvs
Expect:
Cookie: acunetixCookie=AAAAAAAA...N个A...AAAAAAAA
GET /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.1
ACUNETIX /9149447 HTTP/1.1
HTTP_AUTH_LOGIN: '
HTTP_AUTH_PASSWD: acunetix
Client-IP: SomeCustomInjectedHeader:injected_by_wvs
Referer: ';print(md5(acunetix_wvs_security_test));$a='
Accept: acunetix/wvs
Acunetix-Aspect: enabled
Acunetix-Aspect-Password: 082119f75623eb7abd7bf357698ff66c
Acunetix-Aspect-Queries: filelist;aspectalerts

突然看到WVS也会检测FCK,不过就是目录检测不全…

GET /fckeditor HTTP/1.1

前期扫描一些比较奇葩的漏洞都会带以下参数

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();
}
}
}

放在全局变量的文件里

看看效果:

服务器流量异常追踪——抵抗AWVS扫描

使用脚本以后:

服务器流量异常追踪——抵抗AWVS扫描

这里也只是粗浅的提供一种方法,如有说的不对的,请指正。

原文地址:http://zone.wooyun.org/content/7942

继续浏览有关 安全 的文章
发表评论