这种防盗链有点牛 x - V2EX
请不要在回答技术问题时复制粘贴 AI 生成的内容
yaotian

这种防盗链有点牛 x

  •  
  •   yaotian Sep 9, 2016 8094 views
    This topic created in 3536 days ago, the information mentioned may be changed or developed.
    24 replies    2016-09-11 22:16:26 +08:00
    soulteary
        1
    soulteary  
       Sep 9, 2016
    if ($http_user_agent ~ "curl") {
    return 404;
    }
    yaotian
        2
    yaotian  
    OP
       Sep 9, 2016
    @soulteary 这么简单就不贴出来了,看证据
    curl -A "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5" -H "referer:http://img2.weixinqun.com/20160902/663511/50dab2278081488f35fe5fd3c13291cd.jpeg?h=202&w=202" -I http://img2.weixinqun.com/20160902/663511/50dab2278081488f35fe5fd3c13291cd.jpeg?h=202&w=202

    Date: Fri, 09 Sep 2016 08:57:58 GMT
    Content-Type: text/html
    Connection: keep-alive
    Cache-Control: no-cache, no-store
    Server: YUNDUN
    annielong
        3
    annielong  
       Sep 9, 2016
    1024 看到有个图床, url 直接访问是原图,但是下载就变成了小图,
    pangliang
        4
    pangliang  
       Sep 9, 2016
    抓包看一下呗; 封包都一样还能防盗链 那就真是牛 xx 了
    popok
        5
    popok  
       Sep 9, 2016
    没有完美的防盗链,只有不完美的模拟技术
    bin456789
        6
    bin456789  
       Sep 9, 2016
    curl -o 1.jpg \
    -A "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 OPR/39.0.2256.71" \
    http://img2.weixinqun.com/20160902/663511/50dab2278081488f35fe5fd3c13291cd.jpeg?h=202&w=202
    yaotian
        7
    yaotian  
    OP
       Sep 9, 2016
    @bin456789 not work. 打开 1.jpg 看看,是破损的
    URgoy
        8
    URgoy  
       Sep 9, 2016 via Android
    图太小这是干嘛的
    crab
        9
    crab  
       Sep 9, 2016
    referer useragent cookies 通常都第一个吧
    bin456789
        10
    bin456789  
       Sep 9, 2016
    @yaotian 我这边用 bash on windows ,得到一张 900+k 的大图
    tinyproxy
        11
    tinyproxy  
       Sep 9, 2016
    @yaotian 也就是检查多几样而已,真爬起来没啥用。不过你为啥手动弄个 curl 的语句?我都是 chrome 打开网址,然后看网络审查,右键 copy as curl 搞定
    https://gist.github.com/anonymous/8f67ba3e9c13c40727bda83900eac2f6
    ashchen
        13
    ashchen  
       Sep 10, 2016
    我做过一个防盗链系统,每个 ip 来访问的 url 地址都是不一样的, url 有一串 md5 做验证。
    yaotian
        14
    yaotian  
    OP
       Sep 10, 2016   1
    @tinyproxy
    @bin456789 想简单了。真正会出现这样的结果。下载的不是图片,而是一下内容。

    <html><body><script language="Javascript"> window.Onload=setTimeout("cv(246)", 200); function cv(QM) {var qo, mo="", no="", oo = [0xbf,0x4b,0x87,0xec,0xae,0xb6,0x0c,0xde,0x40,0x81,0x8d,0xe2,0x78,0xe9,0xb0,0x74,0x65,0xba,0x20,0x4e,0xa5,0x47,0x98,0x37,0xb5,0xe3,0x52,0x31,0xb3,0xa1,0xba,0x39,0xdb,0x29,0x0c,0xda,0xb9,0x4c,0xfa,0x69,0x96,0x05,0x56,0x05,0x87,0x96,0x5c,0xcd,0x73,0x12,0x1d,0xbf,0x8e,0x90,0x0f,0x53,0x51,0xc3,0x82,0x84,0xee,0xf0,0xd2,0x61,0x14,0x5e,0x44,0xf5,0xa8,0x8a,0x10,0xd1,0x64,0xf5,0x68,0x76,0x05,0xa7,0x95,0x08,0x9d,0x33,0xf8,0x56,0x7b,0x07,0x89,0x3f,0x11,0x63,0x9b,0xa0,0xce,0x6d,0xef,0x04,0xa2,0x84,0x57,0x85,0x17,0xb5,0x38,0xd6,0xb8,0x11,0x07,0xb9,0x1f,0xe4,0x51,0x08,0x69,0x9b,0x4d,0xc5,0x7b,0x3a,0xec,0xbb,0x11,0xf6,0x75,0x48,0x2a,0x6c,0xda,0xb9,0x4f,0xcd,0x85,0x48,0x27,0x95,0x18,0xa1,0x67,0xe5,0x87,0x22];qo = "qo=138; do{oo[qo]=(-oo[qo])&0xff; oo[qo]=(((oo[qo]>>2)|((oo[qo]<<6)&0xff))-155)&0xff;} while(--qo>=2);"; eval(qo);qo = 137; do { oo[qo] = (oo[qo] - oo[qo - 1]) & 0xff; } while (-- qo >= 3 );qo = 1; for (;;) { if (qo > 137) break; oo[qo] = ((((((oo[qo] + 117) & 0xff) + 70) & 0xff) << 6) & 0xff) | (((((oo[qo] + 117) & 0xff) + 70) & 0xff) >> 2); qo++;}po = ""; for (qo = 1; qo < oo.length - 1; qo++) if (qo % 5) po += String.fromCharCode(oo[qo] ^ QM);po += "\""; eval("qo=eval;qo(po);");} </script> </body></html>
    lslqtz
        15
    lslqtz  
       Sep 10, 2016
    大小是因为使用了 h 和 w 参数。
    图片在此, work !
    http://233.dog/f_37432861.png
    lslqtz
        16
    lslqtz  
       Sep 10, 2016
    @crab User-Agent 无疑
    lslqtz
        17
    lslqtz  
       Sep 10, 2016
    C:\Users\lslqtz>curl -H "User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36" -I http://img2.weixinqun.com/20160902/663511/50dab2278081488f35fe5fd3c13291cd.jpeg
    HTTP/1.1 200 OK
    Date: Sat, 10 Sep 2016 03:01:47 GMT
    Content-Type: image/gif
    Content-Length: 940780
    Connection: keep-alive
    Etag: "6d73d55b4b473460815c9753bbb94ae2f2717d2a"
    Expires: Mon, 10 Oct 2016 02:23:51 GMT
    Cache-Control: max-age=2592000
    X-Cache: HIT from YUNDUN
    Server: YUNDUN
    Cache-Control: max-age=1800


    C:\Users\lslqtz>
    yaotian
        18
    yaotian  
    OP
       Sep 10, 2016
    @lslqtz 找一台没访问过的机器再执行一下就能看到我的现象。
    zhs227
        19
    zhs227  
       Sep 10, 2016
    第一次 chrome 打开,打开了网络控制台,未开启保留日志。注意到网络面板里有两条请求,第一条访问地址和输入的地址不一样,多带了一个什么 ID 。第二次访问,这个带了 ID 的地址再跳转回来不带 ID 的地址。感觉在这一步做了 ID 和 IP 的绑定,然后记录了 IP 。由于没有开启网络记录且第一次的访问地址和输入的地址不一样,可以认为是做了三次跳转。第一次跳转也许是做了 Javascript 的混淆,然后用 js 重定到到第二次访问。

    由于用 CURL 时缺少了关键第二次访问,没有办法得到这个图片。

    所以我认为对于一个全新的访问来说,大概是使用了三次跳转。推测使用 phanthomjs 配合 agent 修改应该可破。
    lslqtz
        20
    lslqtz  
       Sep 10, 2016 via iPhone
    @yaotian 太高级系列,试试看执行 js
    crab
        21
    crab  
       Sep 10, 2016
    @yaotian 这个是云盾,有 cookies 检测。要先跑下那 JS 得到 cookies ,携带这个 cookies 再去访问就可以。
    tmplinshi
        22
    tmplinshi  
       Sep 10, 2016   1
    测试结论:
    “第一次”访问该地址是返回含有 js 代码的网页。如果下载图片成功了,那么下次用同一“身份”则是直接下载图片的。
    这个“身份”是基于 IP 和 User-Agent 来判断的。

    比如说用浏览器访问那个地址后,三种 curl 测试结果如下:
    1. 下载成功 --> curl 带上浏览器的 "User-Agent"
    2. 下载失败 --> curl 带上浏览器的 "User-Agent",但是换一个 IP (比如 -x 58.176.46.248:80 )
    3. 下载失败 --> curl 不带或者带上乱写 "User-Agent"
    yaotian
        23
    yaotian  
    OP
       Sep 11, 2016
    19 楼以下是正解
    ClassicOldSong
        24
    ClassicOldSong  
       Sep 11, 2016
    @lslqtz 点开图片然后感觉怪怪的然后才发现咱 Chrome 主题是同一个。。。。
    About     Help     Advertise     Blog     API     FAQ     Solana     1561 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 138ms UTC 16:44 PVG 00:44 LAX 09:44 JFK 12:44
    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