客户端如何伪造 Go(http.Request)中的 RemoteAddr 的信息,使得 Go 开发的 Http server 获取到假的地址信息 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sherry00
V2EX    问与答

客户端如何伪造 Go(http.Request)中的 RemoteAddr 的信息,使得 Go 开发的 Http server 获取到假的地址信息

  •  
  •   sherry00 2018-01-24 18:34:23 +08:00 5295 次点击
    这是一个创建于 2894 天前的主题,其中的信息可能已经有所发展或是发生改变。
    朋友用 Go 搞了一个简单的 Http Server,通过 IP 地址(客户端的 IP 地址他是通过 Reques 的 RemoteAddr 获取的)限制用户的访问次数,然后让我帮忙测测有什么方式可以绕开,我用传统的 Header 中加 IP 方式,没搞定。

    感觉 Go 中的 RemoteAddr 应该是拿的更加底层的 IP 信息。
    // RemoteAddr allows HTTP servers and other software to record
    // the network address that sent the request, usually for
    // logging. This field is not filled in by ReadRequest and
    // has no defined format. The HTTP server in this package
    // sets RemoteAddr to an "IP:port" address before invoking a
    // handler.
    // This field is ignored by the HTTP client.
    RemoteAddr string

    V 站的大佬们,有什么方式可以 Fake 客户端的 IP 地址,使得 RemoteAddr 获取到的 IP 是伪造后的?

    是不是要修改底层的协议才行?

    顿时对 Go 好感倍增。
    16 条回复    2018-01-25 12:35:58 +08:00
    qsnow6
        1
    qsnow6  
       2018-01-24 19:00:05 +08:00 via iPhone
    这跟修改 fake 我的身份证号码一个难度
    fengdra
        2
    fengdra  
       2018-01-24 20:55:34 +08:00 via Android
    没学过计算机网络吧?
    blless
        3
    blless  
       2018-01-24 21:00:38 +08:00
    装一个假系统
    cevincheung
        4
    cevincheung  
       2018-01-24 21:01:25 +08:00
    无法伪造
    tomczhen
        5
    tomczhen  
       2018-01-24 21:02:04 +08:00   1
    直接用代理就能避开单纯 IP 限制,而且单纯通过 IP 限制以目前国内 ISP 大量分配内网 IP 的情况看,很容易误伤。

    反倒是服务端这边如果有做反代,需要添加额外的 header 来让后端获取正确的 ip。
    think2011
        6
    think2011  
       2018-01-24 21:04:45 +08:00
    装一个假系统
    lzvezr
        7
    lzvezr  
       2018-01-24 21:06:08 +08:00 via iPhone   1
    一般没法伪造,除了代理
    但是通过 IP 限制访问的话,小站没问题,大站的话会死一堆内网用户和移动用户
    kfll
        8
    kfll  
       2018-01-24 22:10:09 +08:00 via iPhone
    你让你朋友套个反代,再让他想办法获取正确的客户端 IP。
    然后再讨论能否伪造他拿到的 IP。
    zn
        9
    zn  
       2018-01-24 22:29:30 +08:00
    唯一一个办法:入侵服务端,hook 掉相关函数。

    你要是找到别的办法,我拜你为师。
    jingniao
        10
    jingniao  
       2018-01-24 22:55:04 +08:00
    计算机网络基础………
    WordTian
        11
    WordTian  
       2018-01-24 23:02:24 +08:00 via iPhone
    客户端用 linux 系统,iptables 用 mangle 表修改源 ip ?
    WordTian
        12
    WordTian  
       2018-01-24 23:04:36 +08:00 via iPhone   1
    @WordTian 补充下,这个客户端系统得有公网 ip。

    或者简单点,客户端挂$$访问
    sherry00
        13
    sherry00  
    OP
       2018-01-24 23:06:58 +08:00 via iPhone
    感谢大佬们的建议(正在羞愧的看计算机网络....
    flynaj
        14
    flynaj  
       2018-01-25 08:35:23 +08:00 via Android
    RemoteAddr 是服务端参数,是你客户端的真实 ip,除非用代理
    julyclyde
        15
    julyclyde  
       2018-01-25 12:35:44 +08:00
    什么叫叫“传统的”方式?从来就没有这么个传统
    julyclyde
        16
    julyclyde  
       2018-01-25 12:35:58 +08:00
    现在写程序都不需要学习计算机基础了吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2596 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 05:46 PVG 13:46 LAX 21:46 JFK 00:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86