这种防盗链有点牛 x

2016-09-09 16:15:16 +08:00
 yaotian

curl -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

curl: (52) Empty reply from server

7180 次点击
所在节点    程序员
24 条回复
soulteary
2016-09-09 16:39:15 +08:00
if ($http_user_agent ~ "curl") {
return 404;
}
yaotian
2016-09-09 17:00:49 +08:00
@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
2016-09-09 17:15:51 +08:00
1024 看到有个图床, url 直接访问是原图,但是下载就变成了小图,
pangliang
2016-09-09 19:10:31 +08:00
抓包看一下呗; 封包都一样还能防盗链 那就真是牛 xx 了
popok
2016-09-09 20:04:53 +08:00
没有完美的防盗链,只有不完美的模拟技术
bin456789
2016-09-09 20:19:47 +08:00
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
2016-09-09 22:25:48 +08:00
@bin456789 not work. 打开 1.jpg 看看,是破损的
URgoy
2016-09-09 22:28:00 +08:00
图太小这是干嘛的
crab
2016-09-09 22:46:32 +08:00
referer useragent cookies 通常都第一个吧
bin456789
2016-09-09 23:43:13 +08:00
@yaotian 我这边用 bash on windows ,得到一张 900+k 的大图
tinyproxy
2016-09-09 23:47:31 +08:00
@yaotian 也就是检查多几样而已,真爬起来没啥用。不过你为啥手动弄个 curl 的语句?我都是 chrome 打开网址,然后看网络审查,右键 copy as curl 搞定
https://gist.github.com/anonymous/8f67ba3e9c13c40727bda83900eac2f6
TaMud
2016-09-10 03:41:56 +08:00
ashchen
2016-09-10 07:46:31 +08:00
我做过一个防盗链系统,每个 ip 来访问的 url 地址都是不一样的, url 有一串 md5 做验证。
yaotian
2016-09-10 09:01:11 +08:00
@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
2016-09-10 10:54:59 +08:00
大小是因为使用了 h 和 w 参数。
图片在此, work !
http://233.dog/f_37432861.png
lslqtz
2016-09-10 10:58:13 +08:00
@crab User-Agent 无疑
lslqtz
2016-09-10 11:01:52 +08:00
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
2016-09-10 13:29:13 +08:00
@lslqtz 找一台没访问过的机器再执行一下就能看到我的现象。
zhs227
2016-09-10 13:48:39 +08:00
第一次 chrome 打开,打开了网络控制台,未开启保留日志。注意到网络面板里有两条请求,第一条访问地址和输入的地址不一样,多带了一个什么 ID 。第二次访问,这个带了 ID 的地址再跳转回来不带 ID 的地址。感觉在这一步做了 ID 和 IP 的绑定,然后记录了 IP 。由于没有开启网络记录且第一次的访问地址和输入的地址不一样,可以认为是做了三次跳转。第一次跳转也许是做了 javascript 的混淆,然后用 js 重定到到第二次访问。

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

所以我认为对于一个全新的访问来说,大概是使用了三次跳转。推测使用 phanthomjs 配合 agent 修改应该可破。
lslqtz
2016-09-10 15:09:18 +08:00
@yaotian 太高级系列,试试看执行 js

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/305109

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX