简单伪造XForwardedFor -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    关于伪造X-Forwarded-For的目的我就不多说了,

简单伪造XForwardedFor

。在入侵一个PHP站,GPC为ON的时候,

    字符型注入全部歇菜,而在PHP5中,GPC默认是打开的。但是GPC对$_SERVER无任何影响,

    因此可以通过伪造$_SERVER来达到注入的目的。

    IP.php中有如下代码,主要是获取客户端IP:

   

    function GetIP() {

    if (getenv("HTTP_CLIENT_IP")){

    echo "getenvHTTP_CLIENT_IP";

    $ip = getenv("HTTP_CLIENT_IP");

    }else if (getenv("HTTP_X_FORWARDED_FOR"))

    {

    $ip = getenv("HTTP_X_FORWARDED_FOR");

    echo "getenvHTTP_X_FORWARDED_FOR";

    echo "
you are right";

    }else if (getenv("REMOTE_ADDR")){

    echo "getenvREMOTE_ADDR";

    $ip = getenv("REMOTE_ADDR");

    }else{

    echo "unknow";

    $ip = "Unknown";

    }

    return $ip;

    }

    echo GetIp();

    ?>

    1.直接访问IP.PHP时,返回getenvREMOTE_ADDR127.0.0.1

    2.用NC提交:

    GET /1.php HTTP/1.1

    Accept: */*

    Referer: http://localhost/

    Accept-Language: zh-cn

    Accept-Encoding: gzip, deflate

    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; MAXTHON 2.0)

    Host: localhost

    Connection: Keep-Alive

    Cache-Control: no-cache

    X-Forwarded-For: 127.0.0.2

    Cookie: rtime=0; ltime=1269249140109; cnzz_eid=64110124-1269242429-; language=zh-cn; PHPSESSID=ae9b14609808b4ff4c5811ad1943c529

    返回getenvHTTP_X_FORWARDED_FOR127.0.0.2,

电脑资料

简单伪造XForwardedFor》(https://www.unjs.com)。

    伪造X-Forwarded-For成功。

    要想提高程序的安全性,不是一个GPC可以解决的,必须提高程序的过滤机制,因为任何的参数提交都是有害的!

最新文章