|
|
现在很多人都拥有QQ空间,并且上传了自己的照片。当你想看看新朋友的庐山真面目,可惜给相册加了密码。是不是很扫兴,现在就教你破解掉这个密码来观看加密相册。0 ^. M, c! G c& [/ N
7 G8 P9 H9 x; a% {首先打开一个已经加过密的QQ空间相册页面,然后打开IE“工具-internet-选项”,在“常规”中的“internet临时文件夹”下,依次选择删除“cookies”和“删除文件”删除临时文件夹中所有的cookies和文件,然后再点击“设置”,在“设置窗口”选择“查看文件”,这样就打开了IE临时文件夹。
7 |( ^+ g4 H( R0 J ?2 }& f5 i% U" d# Z+ N+ P
然后打开需要破解的加密相册,出现一个对话框需要输入密码,这是选择取消,在刷新一下空间,点击“相册”。作完上面的动作后找到临时文件夹,刷新一下,里面会有一个“cgi_qqzone_static”的XML文档。双击打开它,在弹出的对话框中选择“是”,打开的是一个代码文件。按Ctrl+f查找,输入“我”进行查找,找到<![CDATA[ 我 ]]>这段代码,下面那个地址就是QQ相册的封面地址。复制他就能看到加密图片的封面
5 {2 R( Y! L$ `, h6 u( \' O" [7 _根据http://izone.qq.com/client/photo ... &album=31931732
4 A ?# G. a5 A; L$ t0 K- M+ V下载或者翻看Internet临时文件夹下的 photo_password 文件可查到下列语句:
4 u0 u2 U3 A( G. O Dtype="text/JavaScript" src=https://www.abc369.net/info/way/"/js/md5.js"></script> 7 P2 D. q/ M( P$ _5 D
document.cookie=("album"+albumId+"pwd="+hex_md5(pwd)); # |+ M$ H d) W
对比 md5.js文件可知,此v2.1版本的 JavaScript MD5,且输入的密码转化为32位的字符串。 ) p A! X; \( j6 V+ N
Z" n& G4 K! v3 s8 }! X; e- m比较两个地址:
4 D. x5 t; ]" l- W5 chttp://photo.qq.com/cgi-bin/izon ... mp;albumid=31931732 9 X: `! T- N; O* }1 ?* [/ l$ ~
/*http://izone.qq.com/client/photo ... amp;album=31931732/这个地址类似可以不看*/ - K5 y0 L$ v# P6 @' M! \5 z
(此地址为有密码情况下的登陆地址,要求输入密码) & m2 z% V7 j0 T/ S% T g& U" I4 j7 D. r- y2 n
http://photo.qq.com/cgi-bin/izon ... asswd=&mode=big ! W: p, ~, p- L) O
(此地址为无密码情况下的登陆地址) " `4 j$ K6 x4 @6 ^2 A$ S
& K- a) @! @; S5 ]' ~" m2 G+ m由此可以推断出:
, b/ y3 {2 ~) h9 j) dhttp://photo.qq.com/cgi-bin/izon ... 1931732&passwd=(广告广告广告广告广告*)&mode=big
% N M% }$ {% t# g$ C5 q$ X广告广告为转化后的md5字符串,此地址应该为此地址为有密码情况下的直接登陆地址。 1 R7 m3 n7 ~) A: @. |! }& A
随便输入一段字符显示如下:
; S8 Q, g) R/ j" T. P6 I<?xml version="1.0" encoding="GBK" ?> 6 p0 m9 P2 M" N2 [3 w5 P2 |0 q. c; Q# j
<error>密码有误,请重新输入!</error> % T4 b g' o7 t n2 @7 N
考虑到在前面有密码情况下的登陆窗口连接为cgi_album_pwd,浏览相册连接为cgi_album_view。 {' l! `4 f: i) J. B
试将登陆地址改为下列方式: ; l. A% h" b1 N) U. |
http://photo.qq.com/cgi-bin/izon ... 1931732&passwd=(广告广告广告广告广告*)&mode=big $ T* y5 Y! {5 \1 ]9 D
随便输入一段字符显示如下:
# b4 W( Y f; B* i<?xml version="1.0" encoding="GBK" ?>
" P6 @7 \ @7 Y* x$ b<data id="31931732" owner="23266229" passwd="81dc" />
3 h8 s' ]+ Q- o' ]' z- k& G/ A经过换算可知,1234的MD5值是81dc9bdb52d04dc20036dbd8313ed055
/ D6 a6 j% i, i# c3 J# v测试数次
* w& W! |) L# `<?xml version="1.0" encoding="GBK" ?>
% r0 H: U# Y; w- ^" A% u<data id="31931732" owner="23266229" passwd="1bbd" />
0 N7 O! P, \9 p密码:11111111 MD5:1bbd886460827015e5d605ed44252251
- {+ s: r+ v" ?: @+ h) t<?xml version="1.0" encoding="GBK" ?>
. [& x9 o0 w4 }( ~6 l! L, i @. L<data id="31931732" owner="23266229" passwd="eccb" /> ' X4 t9 G2 I6 U' O1 l' r
密码:3 MD5:eccbc87e4b5ce2fe28308fd9f2a7baf3
2 S; t6 R7 S5 j) V由此可以判断,此处的passwd为密码加密后的前4位。
3 S5 M3 U& c9 i1 A, ~! ophoto_password 文件可查到下列语句: 4 Y/ T; L& {' F
var p=""; 0 N7 i! C* \/ C& d2 t V6 h- d) t
if (x!=null) p=x.selectSingleNode("/data").getAttribute("passwd"); 4 _1 _) l$ E* R4 W, v8 [: w* \
判断此passwd应该是数据库中的某字段名。 5 q: M& B7 G7 Y1 z
if (p!="" && hex_md5(pwd).indexOf(p)!=0){
/ H. `. I8 |2 `% h, H1 Lalert("密码错误")
- _$ H ^2 |' c, ~! gdocument.getElementById("pass").focus();
% a" D; o6 O0 k0 f8 Mreturn; {' {- Z9 e" H8 j0 U9 K8 B; i% ~ Y
} 6 W/ W5 Y) Z6 p" t
document.cookie=("album"+albumId+"pwd="+hex_md5(pwd));
& c& U: i6 P% i% plocation="/client/photo_static_big.htm?uin="+uin+"&album="+albumId; ; y. c6 `! Y2 I
pwd为输入的密码,经过md5加密。判断此处出现的passwd="eccb"应该是验证输入的密文密码的正确性的。如果正确,使用hex_md5(pwd)进行登陆。
4 i. Z+ } l" v, [# ~$ v# o+ ]
3 M7 E3 m8 [ E* c7 l1 p: i1 J) A由于qq相册密码提示为8位,那么如果有心人使用相关工具换算处8位以下的所有数字和字母组合的MD5值做成数据库,那么密码就如同虚设。但是考虑到相册密码意义不大,一般情况下不会有人过于无聊拿机器去跑这东西... 似乎最基本常见的的运算次数为几百万亿次,如果谁又兴趣搞几台服务器跑天把做个数据库倒是蛮好,就是大了点准备个TB级的硬盘矩阵吧。如果怕麻烦可以去国外的几个大型MD5数据库查询
% V2 ?6 Z# f9 n7 { |
|