1.文件头加:<pre>Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)</pre>
可以绕过狗,waf等
2.另外如果很容易吧对方扫死的话,可以在第一项limit number…..,这里是最大的并发连接数默认是10,可以改低为2-5
3.某些WAF对访问请求时间太快会进行拦截,可以进行延迟发包,在Delay between 默认是0,改为1-5
4.表单验证用户某些页面,例如扫描后台、扫描用户登录后可访问的页面时候,需要登录用户密码验证再进行扫描,我觉得那个录制登录的脚本始终没法解决[验证码]的问题,so这里我们用设置cookie 来解决
5.设置排除url,比如“退出登录”这样的链接,会清除cookie和session,导致扫描终止
首先找到退出链接
然后设置下
6.有时候一些页面需要二级密码,这就需要预置好表单自动填充,首先我们用浏览器F12看看表单的名称name,然后进入AWVS设置
例如在HTML表单提交中出现age的字段,则会自动填写值为20。字段中:web中的是含有通配符的表示形式,例如1web2这样的就是满足web,当然可以不加任何通配符,例如password2
AWVS AcuSensor功能分析
AcuSensor
AcuSensor是Acunetix Web Vulnerability Scanner推出的基于交互式应用安全检测(IAST)技术的Web漏洞扫描功能,目前支持.net、php两种语言站点,根据目标站点可以分别配置生成agent端。
其中.net程序的agent端是一个客户端setup程序,需要在web服务器上安装并配置iis、站点目录等。
php程序的agent是一个php文件(配置生存的php代码经过混淆),php文件需要上传至web服务器并配置php.ini文件auto_prepend_file字段,该字段功能是将该php文件加入网站文件页眉中。
agent原理及实现分析
AcuSensor的agent主要作用是对php关键函数SQL_Query、File_Open、Sys_Command、Create_Function、Delete_File等进行监控。当这些函数执行将参数及相关信息echo到response body中供[扫描器]分析。Agent代码功能及流程如下:
1、判断http header字段是否存在及密码正确性,从而执行agent,直接访问agent页面返回404;
2、根据Acunetix-Aspect-Queries字段判断特定任务类型:aspectalerts、filelist两种,无Acunetix-Aspect-Queries则执行一般的IAST任务:
aspectalerts:php config信息等
filelist:该页面文件所在目录的所有的文件列表信息
3、判断HTTP_ACUNETIX_ASPECT状态是否为enable,并检查HTTP_ACUNETIX_ASPECT_PASSWORD字段是否和预设password相同。password编码后保存在agent文件末尾;
4、使用set_error_handler函数设置一个用户定义的错误处理函数。根据不同的错误类型在响应内容中echo错误信息:
5、使用token_get_all将访问的php文件源代码进行解析,对class、函数、参数、注释、T_VARIABLE等各种字段进行处理并保存在临时文件当中;
6、对于临时文件中需要监控的函数则替换为自定义函数,自定义函数中再调用监控函数。然后执行临时php文件;
7、 使用debug_backtrace跟踪php程序执行的bug信息,获取当前函数、class、args、object、line、file信息,如图:
8、对于返回的信息进行格式化,如:00000010PHP_File_Includes00000014database_connect.php00000018/hj/var/www//product.php00000001s0000001A"require_once" was called.其中00000010为16进制,表示后面数据的长度,该串数字后可能出现""、"s"、"n"、"a",分别标识16进制数后面的数据是string、null、array类型。
AcuSensor 漏洞检测原理
SQL injection漏洞实例
AcuSensor在扫描到sql注入时会根据Agent返回的信息判断漏洞是否真实存在,如真实存在则标注verified,并给出具体漏洞php文件、漏洞产生的对应代码行数
SQL injection漏洞数据包分析
AcuSensor Agent将监控到的漏洞信息通过base64编码返回到相应消息中,[扫描器]获取数据得到漏洞详细信息。如图:
Get first URL only:只扫描首页,不抓取任何链接。
Do not fetch anyting above start folder:不扫描上级目录,例如:新建扫描为http://www.baidu.com/cms/,将不会扫描cms上级目录的链接。
Fetch files below base folder:扫描子目录。
Fetch directory indexes even if not linked:获取目录索引,即使没有关联性的。
Retrieve and process robots.txt, sitemap.xml. :抓取并分析robots.txt、sitemap.xml中出现的目录、URL。
lgnore CASE differences in paths:忽略目录的大小写敏感
fetch default index files (index.php,default.asp):尝试获取每个目录下的默认索引文件,例如扫描http://qq.com,如果爬行到test目录则尝试获取test目录下是否有索引文件,例如:http://qq.c/test/index.php 。
try to prevent infinite derectory recursion:防止抓取到死循环的无限目录。如:http://qq.com/admin/admin/admin/admin/admin
crawl should request only linked files: 爬行应请求只有关联性的文件。
ignore parameters on file extensions like .js .css…etc:忽略文件扩展名类似为js css的参数。
disable auto custom 404 detection(application will use only user defined reles):禁用自动定制404检测(应用程序将使用用户定义的规则)。
consider www.domain.com and domain.com as the same host:如果启用该项那么AWVS会认为www域名和顶级域名是同一主机。
enable input limitaion heuristics:如果启用该选项,并在同一目录下的文件被检测20多个相同的输入方案,抓取工具只会抓取前20个相同的输入方案。
disable path manipulation for known application 禁用已知应用程序的路径操作
optimize inputs for known applications: 对已知应用程序输入的优化。
maximum num ber of variations:变化的最大数目,例如:http://www.baidu.com/index.php?id=1,这里设置ID的最大值为50。link depth limitation:链接深度限制,例如从A站点抓取发现了一个链接,又从该链接上发现另一个链接,以此类推。
structure depth limitation:子目录的最大深度的限制,默认最大15级目录。
maximun number of files in a derectory:在一个目录下AWVS爬取文件数量的最大值。
maximum number of path schemes:判断路径任务的最大任务数。
crawler file limit:爬虫爬行文件的数量限制。
file extension filters: 文件扩展名过滤
Directory and file filters:目录和文件过滤
定义一个目录列表被排除在爬行和扫描过程通配符允许您筛选一系列文件:如/dir1/* 或者/dir1/a 。表示将不扫描/dir1/下的文件,/dir1/a表示的是不扫描dir1下以a开头的文件的漏洞。
URL Rewrite:URL重定向设置
一些网站使用URL重写,这里你可以定义一个列表的URL重定向不同网站帮助爬虫浏览这些网站。