php 伪造ip地址来源实现程序

HTTP-REFERER这个变量已经越来越不可靠了,完全就是可以伪造出来的东东。

1.php 请求 2.php 。
1.php代码:

 代码如下 复制代码
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/2.php");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'));  //构造IP
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com/ ");   //构造来路
curl_setopt($ch, CURLOPT_HEADER, 1);
$out = curl_exec($ch);
curl_close($ch);

2.php代码如下:

 代码如下 复制代码
function getClientIp() {
    if (!empty($_SERVER["HTTP_CLIENT_IP"]))
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    else if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    else if (!empty($_SERVER["REMOTE_ADDR"]))
        $ip = $_SERVER["REMOTE_ADDR"];
    else
        $ip = "err";
    return $ip;
}
echo "IP: " . getClientIp() . "";
echo "referer: " . $_SERVER["HTTP_REFERER"];

伪造成功,这是不是给“刷票”的朋友提供了很好的换IP的方案!!

再看一下相对复杂的处理办法
以下是伪造方法:

 代码如下 复制代码
PHP(前提是装了curl):
PHP代码
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://www.111cn.net");
curl_setopt ($ch, CURLOPT_REFERER, "http://www.111cn.net/");
curl_exec ($ch);
curl_close ($ch);
PHP(不装curl用sock)

PHP代码

 代码如下 复制代码
$server = '127.0.0.1';
$host = '127.0.0.1';
$target = '/xxx.asp';
$referer = 'http://127.0.0.1/'; // Referer
$port = 80;
$fp = fsockopen($server, $port, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno)<br />n";
}
else
{
$out = "GET $target HTTP/1.1rn";
$out .= "Host: $hostrn";
$out .= "Cookie: ASPSESSIONIDSQTBQSDA=DFCAPKLBBFICDAFMHNKIGKEGrn";
$out .= "Referer: $refererrn";
$out .= "Connection: Closernrn";
fwrite($fp, $out);
while (!feof($fp))
{
echo fgets($fp, 128);
}
fclose($fp);
}

IP也可以伪造

 代码如下 复制代码

$fp = fsockopen ("192.168.0.128", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>n";
} else {
$msg="GET /003.php HTTP/1.0rn";
$msg.="Host: 192.168.0.128rn";
$msg.="Referer: http://www.baidu.comrn";

$msg.="Client-IP: 1.1.1.1rn";
$msg.="X-Forwarded-For: 1.1.1.1rn"; //主要是这里来构造IP
$msg.="Connection: Closernrn";
fputs ($fp, $msg);
while (!feof($fp)) {
echo fgets ($fp,1024);
}
fclose ($fp);
}

记住用fsockopen时,命令最后一定要有rnrn,不然会超时。

其实这个可以用$_SERVER['REMOTE_ADDR']来得到正确IP,但是人们为了得到代理访问IP,而采用的得到IP的方法往往不是$_SERVER['REMOTE_ADDR'],这就为我们提供了机会。

这里另外一篇关于 curl 伪造 ip地址的文章有兴趣的同学可以参考一下

http://www.111cn.net/phper/php-cy/39779.htm

时间: 2024-07-31 16:28:12

php 伪造ip地址来源实现程序的相关文章

PHP怎么CURL伪造IP和来源实现程序

curl默认是未被启用的,启用方法. 启用 cURL 设置 如果你是在Windows平台下,那么非常简单,你需要改一改你的php.ini文件的设置,找到php_curl.dll,并取消前面的分号注释就行了.如下所示: //取消下在的注释  代码如下 复制代码  extension=php_curl.dll  如果你是在Linux下面,那么,你需要重新编译你的PHP了,编辑时,你需要打开编译参数--在configure命令上加上"–with-curl" 参数. 简单测试实例  代码如下

php CURL伪造IP和来源实现程序

实例  代码如下 复制代码 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://localhost/2.php"); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'));//IP curl_setopt($ch, CURLOPT_REFERER, "http://www.111cn.n

php伪造IP地址与来源程序代码

下面写个构造来路google.com代码  代码如下 复制代码 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, http://www.111cn.net/); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8')); //构造IP curl_setopt($ch, CURLOPT_REFERER, "http://www

PHP curl伪造IP地址和header信息代码实例

  这篇文章主要介绍了PHP curl伪造IP地址和header信息代码实例,本文给出服务器端和客户端实现代码,提供伪造功能和服务器端检测代码,需要的朋友可以参考下 curl虽然功能强大,但是只能伪造$_SERVER["HTTP_X_FORWARDED_FOR"],对于大多数IP地址检测程序来说,$_SERVER["REMOTE_ADDR"]很难被伪造: 首先是client.php的代码 代码如下: $headers['CLIENT-IP'] = '202.103.

php使用CURL伪造IP和来源实例详解

这篇文章主要介绍了php使用CURL伪造IP和来源的方法,以实例形式详细分析了CURL伪造IP和来源的原理与实现技巧,并补充说明了PHP中的CURL函数库常用函数,需要的朋友可以参考下       本文实例讲述了php使用CURL伪造IP和来源的方法.分享给大家供大家参考.具体分析如下: 伪造IP来源对于php来说是很简单的一件事情,我们只要利用了php的curl即可实现伪造IP来源的功能,IP地址你可以随便写. index.php实例代码如下: 代码如下: $ch = curl_init();

ASP 获取腾讯IP地址的接口程序代码

<script type=text/javascript教程 src=http://fw.qq.com/ipaddress></script> <script type=text/javascript> var hehe1=IPData[2] var hehe2=IPData[3] alert(hehe1); alert(hehe2); document.write(IPData.join(' ')); </script> 如何用ASP来存储,从上面读取出来

我如何用C#编写查看IP地址 的应用程序

问题描述 我如何用C#编写查看IP地址的应用程序 解决方案 解决方案二:System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName())解决方案三:谢谢大哥的指教,是不是这样呀?usingSystem;usingSystem.Net;usingSystem.IO;usingSystem.Data;usingSystem.Net.Dns;usingSystem.Text;namespaceCwpSoft.NetIP{publicclassN

PHP 伪造IP和来源信息

查了下,CURL确实很强悍的可以伪造IP和来源,下面看实现有需要的朋友可以参考一下. 1.php教程 请求 2.php . 1.php代码: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://localhost/2.php"); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'));  //构造

使用php查询ip地址来源归属地

<?php header('Content-Type:text/html;charset=utf-8'); if($_GET['sub']){ $ip = $_GET['ip']; $msg = ''; ipSearch(); } function ipSearch(){ global $ip,$msg; if(!$ip){ $msg = '请至少填写一个ip!'; return; } $arises = substr_count($ip,'.'); $long = ip2long($ip);