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 intval的测试代码发现问题
Jul 27 PHP
php trim 去除空字符的定义与语法介绍
May 31 PHP
mysql_num_rows VS COUNT 效率问题分析
Apr 23 PHP
php 保留字列表
Oct 04 PHP
php根据日期判断星座的函数分享
Feb 13 PHP
PHP实现PDO的mysql数据库操作类
Dec 12 PHP
php限制ip地址范围的方法
Mar 31 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
php利用smtp类实现电子邮件发送
Oct 30 PHP
基于命令行执行带参数的php脚本并取得参数的方法
Jan 25 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 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
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
php之curl设置超时实例
2014/11/03 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
php日期操作技巧小结
2016/06/25 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
Python深入学习之闭包
2014/08/31 Python
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
python字典的常用方法总结
2019/07/31 Python
如何获取Python简单for循环索引
2019/11/21 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
购买大码女装:Lane Bryant
2016/09/07 全球购物
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
50道外企软件测试面试题
2014/08/18 面试题
法学专业个人求职信
2013/09/26 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL