0x01 阅读须知
鸡哥安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
0x02 $_SERVER函数说明
1.$_SERVER函数,这里举例出部分,如图使用的参数意思
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
0x03 X-Forwarder-For绕过解析
1.当我们传入payload:X-Forwarded-For:1.1.1.1,路由过程如下
代码第1-12行(GetIP自定义函数):使用全局变量$SERVER中的HTTP_CLIENT_IP匹配传递来的浏览当前页面的计算机的ip地址,如果没有的话。使用局变量$SERVER中的HTTP_X_FORWARDED_FOR匹配传递来的浏览当前页面的计算机的网关,如果再没有的话。使用局变量$SERVER中的REMOTE_ADDR匹配传递来的客户端的ip。DEBUG:X-Forwarded-For:1.1.1.1 $cip:1.1.1.1
代码第13-19行:使用$GETIPS调用GetIP函数,如果$GetIPs为1.1.1.1,输出flag,否则错误。由于为X-Forwarded-For:1.1.1.1,$GetIPs也为1.1.1.1,所以pass,输出flag。DEBUG:$GetIPs:1.1.1.1
function GetIP(){
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
$cip = $_SERVER["HTTP_CLIENT_IP"];
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if(!empty($_SERVER["REMOTE_ADDR"]))
$cip = $_SERVER["REMOTE_ADDR"];
else
$cip = "0.0.0.0";
return $cip;
}
$GetIPs = GetIP();
if ($GetIPs=="1.1.1.1"){
echo "Great! Key is *********";
}
else{
echo "错误!你的IP不在访问列表之内!";
}
原文始发于微信公众号(鲲哥的Bypass之旅):奇淫巧计 X-Forwarded-For绕过IP限制
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论