php curl 伪造IP来源的实例代码


Posted in PHP onNovember 01, 2012

curl发出请求的文件fake_ip.php:
代码

<?php 
$ch = curl_init(); 
$url = "http://localhost/target_ip.php"; 
$header = array( 
'CLIENT-IP:58.68.44.61', 
'X-FORWARDED-FOR:58.68.44.61', 
); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 
$page_content = curl_exec($ch); 
curl_close($ch); 
echo $page_content; 
?>

请求的目标文件target_ip.php:
<?php 
echo getenv('HTTP_CLIENT_IP'); 
echo getenv('HTTP_X_FORWARDED_FOR'); 
echo getenv('REMOTE_ADDR'); 
?>

目标文件target_ip里面的IP打印顺序是目前很多开源系统的IP获取顺序
访问fake_ip.php,看到结果:
58.68.44.61
58.68.44.61
127.0.0.1
实例
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')); //构造IP 
curl_setopt($ch, CURLOPT_REFERER, "https://3water.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 相关文章推荐
很好用的PHP数据库类
May 27 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
php处理restful请求的路由类分享
Feb 27 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
Zend Framework教程之视图组件Zend_View用法详解
Mar 05 PHP
Laravel日志用法详解
Oct 09 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
PHP常见数组排序方法小结
Aug 20 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
Oct 23 PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 PHP
PHP设计模式(观察者模式)
Jul 07 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 #PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 #PHP
php eval函数用法总结
Oct 31 #PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 #PHP
php图片加中文水印实现代码分享
Oct 31 #PHP
php中防止恶意刷新页面的代码小结
Oct 31 #PHP
利用PHP生成静态HTML文档的原理
Oct 29 #PHP
You might like
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
javascript一点特殊用法
2008/05/28 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
详解Angular的双向数据绑定(MV-VM)
2016/12/26 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
python/sympy求解矩阵方程的方法
2018/11/08 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
2020/09/30 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
Python的两道面试题
2013/06/29 面试题
服务中心夜班服务员岗位职责
2013/11/27 职场文书
房屋改造计划书
2014/01/10 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
感恩教育月活动总结
2014/07/07 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
个人原因辞职信模板
2015/05/13 职场文书