编写自己的Acunetix WVS漏洞脚本

乌帽子 2014-07-04 14:44:00

0x00 背景


AWVS提供了自定义的脚本编程接口,可是网上的资料很少,只有官方的几篇介绍和参考手册,最近研究了一下怎么编写AWVS的漏洞脚本来写一篇简单性的文章,大家有兴趣的可以交流。

本文以8.0为例,首先呢安装好Acunetix Web Vulnerability Scanner 8(该破解的破解,该付费的付费),然后我们需要WVS公开的小小的SDK,下载地址:http://www.acunetix.com/download/tools/WVSSDK.zip,下载好了后解压bin目录下的WVSS.exe到WVS安装目录下面,此即为WVS脚本编写工具。另外sdk里还有3个简单的脚本小例子和WVS_SDK_Quick_Introduction.pdf,耐心的可以看看。

0x01 细节


下面的截图就是WVS码脚本工具了

打开WVS数据目录,通常是在C:\Documents and Settings\All Users\Application Data\Acunetix WVS 8\Data\Scripts下,可以看到有10个文件夹,Network、PerFile、PerScheme、PostScan、PerFolder、PerServer、PostCrawl、WebApps、XML。我们先来认识一下:

Network:此目录下的脚本文件是当扫描器完成了端口扫描模块后执行,这些脚本可以检测TCP端口的开放情况,比如检测FTP的21端口是否开放、是否允许匿名登录; 
PerFile:此目录下的脚本是当扫描器爬虫爬到文件后执行,比如你可以检查当前测试文件是否存在备份文件,当前测试文件的内容等; 
PerFolder:此目录下的脚本是当扫描器爬虫爬行到目录后执行,比如你可以检测当前测试目录是否存在列目录漏洞等; 
PerScheme:此目录下的脚本会对每个URL的 GET、POST结构的参数进行检测,AWVS定义了的参数包括HTTP头、Cookies、GET/POST参数、文件上传(multipart/form-data)……比如你可以检测XSS、SQL注入和其他的应用程序测试; 
PerServer:此目录下的脚本只在扫描开始是执行一次,比如你可以检测Web服务器中间件类型; 
PostScan:此目录下的脚本只在扫描结束后执行一次,比如你可以检测存储型XSS、存储型SQL注入、存储型文件包含、存储型目录遍历、存储型代码执行、存储型文件篡改、存储型php代码执行等; 
XML:漏洞的详细描述文档都在这里。 

今天演示的漏洞是Discuz 7.2的faq.php SQL注入,关于漏洞:http://ha.cker.in/1087.seo

我们就用POC来写漏洞的脚本吧!

检测原理:

根据公开的POC构造出特殊请求,若存在SQL注入则构造的SQL语句将会执行成功并在返回到响应内容,构造POC如下:

/faq.php?action=grouppermission&gids[99]='&gids[100][0]=) and (select 1 from (select count(*),concat((select 0x4861636B656442795365636572),floor(rand(0)*2))x from information_schema.tables group by x)a)%23

URLEncode编码一下:

faq.php?action=grouppermission&gids[99]='&gids[100][0]=)%20and%20(select%201%20from%20(select%20count(),concat((select%200x4861636B656442795365636572),floor(rand(0)2))x%20from%20information_schema%20.tables%20group%20by%20x)a)%23

我们需要用WVS的脚本请求此URL并处理返回的内容,以此判断是否存在漏洞。

打开AWVS,Tools -> Vulnerability Editor,右键VulnXMLs节点,选择‘Add Vulnerability’

新建一个漏洞,VulnXML FILENAME为Discuz7.2FaqSqlinjection,点Add按钮(新建的VulnXML会被保存到XML文件夹下哦)

接下来登记下该漏洞的相关信息

然后进入wvss写脚本,保存为Discuz7.2FaqSqlinjection.script放入PerServer文件夹吧。

测试脚本:

使用AWVS的网站爬虫爬行网站并保存结果,

这里选择根目录

点击小三角按钮测试

完整的代码如下

测试成功了,我到WVS里扫描去测试扫描看看~

我们新建的漏洞脚本在这里,Scanning Profiles –》 PerFolder目录下,新建一个扫描模板勾选要测试的脚本并保存,这里保存为“test_HA.CKER.IN”,然后用这个模板扫描目标站测试吧

选择模板并开始扫描

扫描完成后,结果如图

漏洞脚本重复检测了很多次,下次更新修复下这个问题。

0x02 总结


本人不才,这次对AWVS自定义脚本编写简单的介绍就到这了,只是做个示例展示给大家,这些API不是很详细我也不是很会写,更多的API等你去挖掘吧!

参考:

http://www.acunetix.com/vulnerability-scanner/scriptingreference/index.html

http://www.acunetix.com/blog/docs/creating-custom-checks-acunetix-web-vulnerability-scanner/

评论

Z

zzR 2014-07-04 17:09:17

顶一个,洞主的awvs怒测特别牛b

小胖子 2014-07-04 17:11:13

这个慢慢升级各种exp,吊炸天啊@

2014-07-04 17:45:19

不错,值得表扬。

H

Hmily 2014-07-04 21:34:07

目测破解版

乌帽子 2014-07-04 23:49:40

是啊,Cracked_BY_Hmily[52pojie.cn]

W

winterFire 2014-07-05 05:52:12

我看这个怎么有一种java的感觉?

梧桐雨 2014-07-05 14:12:34

这明显是javascript好不好=。=

W

winterFire 2014-07-05 23:08:30

大神,我说的是程序内部的图标...

W

winterFire 2014-07-05 23:09:33

会超过metasploit?

H

Hmily 2014-07-07 15:21:21

看他们现在都用9.5了好像。

乌帽子 2014-07-07 17:02:08

wvs9.5的爬虫保存项目后用wvss测试脚本时会说cwl版本比wvss的newer。。所以用8.0的了

H

her0ma 2014-07-08 11:00:21

其实我一直想问的是这篇文章到底是哪位大婶写的?版权啊 版权~
我都被搞糊涂了,不知道是谁写的~~

H

her0ma 2014-07-08 11:05:41

看到文章的链接 原来是secer写的~ @乌帽子是你吗?

乌帽子 2014-07-08 14:20:00

是啊 马甲在此。。

高斯 2014-07-18 19:54:15

这码打的……

B

BeenQuiver 2015-01-11 23:08:09

猪猪侠使用这个框架么?

0

0c0c0f 2015-07-20 12:29:12

找到了,发现awvs自带的一些脚本打开之后乱码.

乌帽子

学习黑客哪家强 | 中国山东找蓝翔 | sql注入 | xss | 溢出 | 分初级班 | 中级班 | 高级班 | 包分配

twitter weibo github wechat

随机分类

Web安全 文章:248 篇
MongoDB安全 文章:3 篇
后门 文章:39 篇
木马与病毒 文章:125 篇
IoT安全 文章:29 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

Article_kelp

因为这里的静态目录访功能应该理解为绑定在static路径下的内置路由,你需要用s

N

Nas

师傅您好!_static_url_path那 flag在当前目录下 通过原型链污

Z

zhangy

你好,为什么我也是用windows2016和win10,但是流量是smb3,加密

K

k0uaz

foniw师傅提到的setfge当在类的字段名成是age时不会自动调用。因为获取

Yukong

🐮皮

目录