在 WooYun Zone 里看到个帖子有木有大牛帮我检测我母校的站,有人回复可以用360的网站卫士来扫描别人网站的漏洞。但是要扫描某个网站时是会有验证的……

QQ20151004-0@2x.png

方法一:mod_substitute

于是想到了用反向代理,然后替换网页内容,这里用 Apache 的反向代理做个演示:

在 http.conf 最后加上:

<VirtualHost *:80>
    ServerName sec.mine.com
    ServerAlias sec.mine.com
    ProxyRequests Off
    <Proxy *>
        Options MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Proxy>
    ProxyPass / http://www.ooxx.com/
    ProxyPassReverse / http://www.ooxx.com/
</VirtualHost>

其中 sec.mine.com 是自己的域名,www.ooxx.com 是要检测的对方的域名。当然先开启 Apache 的 proxy 扩展什么的就不说了,网上很多。

关键是替换代理服务器返回的网页内容,搜了下中文资料貌似大部分都和这篇文章里说的差不多,可惜我试了下不知道为什么没成功。Google 到了一个类似的问题——Apache as Proxy replace the html code/tags/text,参照 mod_substitute 的官方文档,改成这样就好了:

<VirtualHost *:80>
    ServerName sec.mine.com
    ServerAlias sec.mine.com
    ProxyRequests Off
    <Proxy *>
        Options MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Proxy>
    ProxyPass / http://www.ooxx.com/
    ProxyPassReverse / http://www.ooxx.com/
    RequestHeader unset Accept-Encoding
    <Location "/">
        AddOutputFilterByType SUBSTITUTE text/html
        Substitute "s|COPY RIGHT|<a href=\"http://webscan.360.cn/index/checkwebsite/url/sec.mine.com\" name=\"yourhash\" >360网站安全检测平台</a>|ni"
    </Location>
</VirtualHost>

RequestHeader unset Accept-Encoding 是为了防止服务器把 response 给压缩(gzip)了,要不然无法进行正则替换。显而易见,我把 response 里的 COPY RIGHT 替换成了360网站安全给的文字验证。

方法二:rewrite

不过搞完后发现回复里用的是 .htaccess 的方法,试了试也比较简单:

在 http.conf 里加上:

<VirtualHost *:80>
     ServerName test.mine.com
     DocumentRoot /var/www/html/test.mine.com
     <Directory "/var/www/html/test.mine.com">
     Order deny,allow
     AllowOverride All
     allow from all
     </Directory>
</VirtualHost>

再去新建 /var/www/html/test.mine.com 这个目录,目录里放个名为 webscan_360_cn.html 的文件,文件内容你懂的。(也可以新建个 index.php 在里面写入验证代码)

然后新建个 .htaccess,内容:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} ^webscan_360_cn
RewriteRule ^(.*)$ http://www.ooxx.com/$1

要先打开 Apache 的 rewrite 就不咯嗦了,这个 rewrite 规则大意就是除了以 webscan_360_cn 开头的文件,其他的都反向代理到 www.ooxx.com。

参考:

反向代理的有趣用法
Apache as Proxy replace the html code/tags/text
360网站安全检测域名验证存在风险,有可能被他人验证通过