手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

简单伪造X-Forwarded-For

首页 > PHP >

说实话,通过代理访问之类的以前都曾关注过,但伪造来源IP还真没注意过。以下的文章内容我没有测试过,仅仅了解一个想法,或许真可以,或许早就不行。但既然有第一次以后就会有第二次。了解入侵途径、方法,在遇到问题的时候岂不更好、更容易多一个技能来解决它?

原文来自:简单伪造X-Forwarded-For

关于伪造X-Forwarded-For的目的我就不多说了。在入侵一个PHP站,GPC为ON的时候,

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

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

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

PHP代码
  1. <?  
  2. function GetIP() {  
  3. if (getenv("HTTP_CLIENT_IP")){  
  4. echo "getenvHTTP_CLIENT_IP";  
  5. $ip = getenv("HTTP_CLIENT_IP");  
  6. }else if (getenv("HTTP_X_FORWARDED_FOR"))  
  7.    {  
  8. $ip = getenv("HTTP_X_FORWARDED_FOR");  
  9.    echo "getenvHTTP_X_FORWARDED_FOR";  
  10.    echo "<br>you are right";  
  11. }else if (getenv("REMOTE_ADDR")){  
  12. echo "getenvREMOTE_ADDR";  
  13. $ip = getenv("REMOTE_ADDR");  
  14. }else{  
  15. echo "unknow";  
  16. $ip = "Unknown";  
  17. }  
  18. return $ip;  
  19. }  
  20. echo GetIp();  
  21. ?>  
1.直接访问IP.PHP时,返回getenv REMOTE_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。

伪造X-Forwarded-For成功。

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

有害的!

--EOF--

如果上述属实,那就太痛苦了,啥也不能信了。这年头,连X萝卜也靠不住了。




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: 入侵

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):