实验吧貌似有点难

知识点:empty()函数;HTTP请求头中伪造客户端IP地址

X-Forwarded-For绕过指定IP地址,方法:HTTP头添加X-Forwarded-For:1.1.1.1

(1)PHP empty()函数 用于检查一个变量是否为空

empty() 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在。

empty() 并不会产生警告,哪怕变量并不存在。 这意味着 empty() 本质上与 !isset($var) || $var == false 等价。

当 var 存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE。

(2)_SERVER的问题

https://www.cnblogs.com/rendd/p/6182918.html

看到这几行代码,我们不难发现,如果要的到flag,那么IPs=="1.1.1.1,而此时我们输出的结果是“错误!你的IP不在访问列表之内!”,

显然我们的IP不是1.1.1.1.那么我们就应该想办法修改IP地址为1.1.1.1,这样便能得到结果。

首先查看是否存在$_SERVER["HTTP_CLIENT_IP"],如果存在IP就是它,

否则接下来看$_SERVER["HTTP_X_FORWARDED_FOR"],

最后看$_SERVER["REMOTE_ADDR"],如果以上三个变量都不存在的话则返回0.0.0.0。

 

X-Forwarded-For

当我们用代理服务器的时候,X-Forwarded-For这个值记录的是我们客户端原本的IP地址,而非代理服务的IP,简言之就是用来识别经过HTTP代理后的客户端IP地址。X-Forwarded-For在头信息中对应的就是X-Forwarded-For,是可以进行伪造的。

首先我们来讲讲伪造X-Forwarded-For的方法,我们可以直接使用Firefox的X-Forwarded-For header来实现,操作非常的简单:

设置好后,刷新页面,

二:

用Burpsuite 抓包

 右键发送到Repeater

添加一个X-Forwarded-For:1.1.1.1或者Client-ip:1.1.1.1,然后GO

 右边返回里

猜你喜欢

转载自www.cnblogs.com/liqik/p/10611181.html
今日推荐