假作真时真亦假——“真实”IP带来的安全隐患

Author: lake2, http://lake2.0x54.org

 

让我们看一段 ASP 代码先:

 

    Function getIP()

         Dim strIPAddr as string

         If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then

             strIPAddr = Request.ServerVariables("REMOTE_ADDR")

         ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then

             strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)

         ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then

             strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)

         Else

             strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

         End If

         getIP = Trim(Mid(strIPAddr, 1, 30))

    End Function

 

这段代码的功能是得到客户端真实ip,也就是当客户端使用了透明HTTP代理的时候取得真正的客户端ip;匿名代理返回代理ip;无代理返回客户端ip

想一下,为什么该代码能够从透明代理那里得到真实的ip呢?莫非透明代理服务器会发送我们的真ip?本地搭建一个透明代理,抓包分析之:

 

GET /test/ipSpoof/test.asp HTTP/1.1

Accept: */*

Accept-Language: zh-cn

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; TencentTraveler ; .NET CLR 1.1.4322)

Host: localhost

Connection: Keep-Alive

Cookie: tc_total_cookie_datetime_14734= 2006-5-29 %2010% 3A 45% 3A 26; PJBlog25Setting=ViewType=list; ASPSESSIONIDQQQGQMDQ=HLGHFEADMMDPHAFJDHBLBOPD

X-Forwarded-For: 10.0.0 .54

 

 

 

哈哈,原来我们的真正ip被服务器发送出去了,那么,如果我们修改X-Forwarded-For的值再提交的话……嘿嘿,这样就可以伪造任意的“真实”ip啦。

图中所示是我在某Blog上面伪造的光棍ip ^_^

 

伪造了“真实”ip,可以做很多事情,最简单就是以任意ip发表评论,要是管理员看到一个123.456.789.000ip一定会被你郁闷到的。

更高级点,应该可以实现突破ip限制、跨站和SQL注射,当然需要结合具体的程序代码来看了。

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 27
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值