zoukankan      html  css  js  c++  java
  • 实验吧貌似有点难

    知识点: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

     右边返回里

  • 相关阅读:
    DataAnnotations
    使用BizTalk实现RosettaNet B2B So Easy
    biztalk rosettanet 自定义 pip code
    Debatching(Splitting) XML Message in Orchestration using DefaultPipeline
    Modifying namespace in XML document programmatically
    IIS各个版本中你需要知道的那些事儿
    关于IHttpModule的相关知识总结
    开发设计的一些思想总结
    《ASP.NET SignalR系列》第五课 在MVC中使用SignalR
    《ASP.NET SignalR系列》第四课 SignalR自托管(不用IIS)
  • 原文地址:https://www.cnblogs.com/liqik/p/10611181.html
Copyright © 2011-2022 走看看