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
1
soulteary 2016-09-09 16:39:15 +08:00
if ($http_user_agent ~ "curl") {
return 404; } |
2
yaotian OP @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 |
3
annielong 2016-09-09 17:15:51 +08:00
1024 看到有个图床, url 直接访问是原图,但是下载就变成了小图,
|
4
pangliang 2016-09-09 19:10:31 +08:00
抓包看一下呗; 封包都一样还能防盗链 那就真是牛 xx 了
|
5
popok 2016-09-09 20:04:53 +08:00
没有完美的防盗链,只有不完美的模拟技术
|
6
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 |
8
URgoy 2016-09-09 22:28:00 +08:00 via Android
图太小这是干嘛的
|
9
crab 2016-09-09 22:46:32 +08:00
referer useragent cookies 通常都第一个吧
|
11
tinyproxy 2016-09-09 23:47:31 +08:00
@yaotian 也就是检查多几样而已,真爬起来没啥用。不过你为啥手动弄个 curl 的语句?我都是 chrome 打开网址,然后看网络审查,右键 copy as curl 搞定
https://gist.github.com/anonymous/8f67ba3e9c13c40727bda83900eac2f6 |
12
TaMud 2016-09-10 03:41:56 +08:00
|
13
ashchen 2016-09-10 07:46:31 +08:00
我做过一个防盗链系统,每个 ip 来访问的 url 地址都是不一样的, url 有一串 md5 做验证。
|
14
yaotian OP @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> |
15
lslqtz 2016-09-10 10:54:59 +08:00
大小是因为使用了 h 和 w 参数。
图片在此, work ! http://233.dog/f_37432861.png |
17
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> |
19
zhs227 2016-09-10 13:48:39 +08:00
第一次 chrome 打开,打开了网络控制台,未开启保留日志。注意到网络面板里有两条请求,第一条访问地址和输入的地址不一样,多带了一个什么 ID 。第二次访问,这个带了 ID 的地址再跳转回来不带 ID 的地址。感觉在这一步做了 ID 和 IP 的绑定,然后记录了 IP 。由于没有开启网络记录且第一次的访问地址和输入的地址不一样,可以认为是做了三次跳转。第一次跳转也许是做了 javascript 的混淆,然后用 js 重定到到第二次访问。
由于用 CURL 时缺少了关键第二次访问,没有办法得到这个图片。 所以我认为对于一个全新的访问来说,大概是使用了三次跳转。推测使用 phanthomjs 配合 agent 修改应该可破。 |
21
crab 2016-09-10 15:42:35 +08:00
@yaotian 这个是云盾,有 cookies 检测。要先跑下那 JS 得到 cookies ,携带这个 cookies 再去访问就可以。
|
22
tmplinshi 2016-09-10 16:23:58 +08:00 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" |
23
yaotian OP 19 楼以下是正解
|
24
ClassicOldSong 2016-09-11 22:16:26 +08:00
@lslqtz 点开图片然后感觉怪怪的然后才发现咱 Chrome 主题是同一个。。。。
|