|
现在很多人都拥有QQ空间,并且上传了自己的照片。当你想看看新朋友的庐山真面目,可惜给相册加了密码。是不是很扫兴,现在就教你破解掉这个密码来观看加密相册。% _' n* L V* |, H" c) k- u* h
0 u3 d1 Y, u8 u1 F0 X
首先打开一个已经加过密的QQ空间相册页面,然后打开IE“工具-internet-选项”,在“常规”中的“internet临时文件夹”下,依次选择删除“cookies”和“删除文件”删除临时文件夹中所有的cookies和文件,然后再点击“设置”,在“设置窗口”选择“查看文件”,这样就打开了IE临时文件夹。) |! K0 V# x" C2 L1 P6 ?% D) q
% X7 q* i9 @; l# J然后打开需要破解的加密相册,出现一个对话框需要输入密码,这是选择取消,在刷新一下空间,点击“相册”。作完上面的动作后找到临时文件夹,刷新一下,里面会有一个“cgi_qqzone_static”的XML文档。双击打开它,在弹出的对话框中选择“是”,打开的是一个代码文件。按Ctrl+f查找,输入“我”进行查找,找到<![CDATA[ 我 ]]>这段代码,下面那个地址就是QQ相册的封面地址。复制他就能看到加密图片的封面
% R4 E: f R: T根据http://izone.qq.com/client/photo ... &album=31931732
$ P8 R$ ?8 |- s1 b, k0 B" r- N下载或者翻看Internet临时文件夹下的 photo_password 文件可查到下列语句:
3 A3 u% V, M$ v# }. d2 G( dtype="text/JavaScript" src=https://www.abc369.net/info/way/"/js/md5.js"></script>
. [ q; F9 W/ wdocument.cookie=("album"+albumId+"pwd="+hex_md5(pwd));
. v) G% j9 T, Y, S; I对比 md5.js文件可知,此v2.1版本的 JavaScript MD5,且输入的密码转化为32位的字符串。 3 A+ `) W) m0 Z
/ s/ |9 R2 c& m0 b- t/ Y g
比较两个地址:
) D6 H$ Z0 K8 Z9 Ohttp://photo.qq.com/cgi-bin/izon ... mp;albumid=31931732 E8 x3 I1 b) e+ E# ?
/*http://izone.qq.com/client/photo ... amp;album=31931732/这个地址类似可以不看*/ % K ]4 x! N5 |) m# K- O
(此地址为有密码情况下的登陆地址,要求输入密码) 6 C7 W; y3 a0 r* }, _
http://photo.qq.com/cgi-bin/izon ... asswd=&mode=big : B) m; ] Z- q- q
(此地址为无密码情况下的登陆地址)
+ p+ ?. _: T8 v, d
* \0 N# t. m' n7 D; n" m; V由此可以推断出:
" u+ s8 {( @# \* N- ~http://photo.qq.com/cgi-bin/izon ... 1931732&passwd=(广告广告广告广告广告*)&mode=big ( T$ q& o8 Z: ~; e
广告广告为转化后的md5字符串,此地址应该为此地址为有密码情况下的直接登陆地址。
: w& c% U4 J8 ^5 w随便输入一段字符显示如下:
6 p7 X) H* @) b8 q) q {% Y* {% V4 a<?xml version="1.0" encoding="GBK" ?>
" |6 p6 h, W& Q+ R7 Y<error>密码有误,请重新输入!</error> - b/ `- S' O) K& R! t/ y% b
考虑到在前面有密码情况下的登陆窗口连接为cgi_album_pwd,浏览相册连接为cgi_album_view。
3 n3 _+ s/ l# x C( a. b试将登陆地址改为下列方式:
) |) k" C9 f; I$ Mhttp://photo.qq.com/cgi-bin/izon ... 1931732&passwd=(广告广告广告广告广告*)&mode=big w$ `+ {: |4 ?2 j6 U
随便输入一段字符显示如下:
& I4 ?; D( G. l- S& ?& W( B<?xml version="1.0" encoding="GBK" ?> ; o7 d3 C2 Z. H1 a w
<data id="31931732" owner="23266229" passwd="81dc" /> ! }" A& p l+ U
经过换算可知,1234的MD5值是81dc9bdb52d04dc20036dbd8313ed055
7 q9 r2 H" ^* Y* ^: Z9 \测试数次 , q& U2 S8 \" Z1 o' s- i
<?xml version="1.0" encoding="GBK" ?> 0 X; [! ~( p a
<data id="31931732" owner="23266229" passwd="1bbd" /> ! Z: \$ I4 g- J2 _" b: I
密码:11111111 MD5:1bbd886460827015e5d605ed44252251
* D$ @. R. o: h<?xml version="1.0" encoding="GBK" ?> & t9 b5 p8 ]5 [
<data id="31931732" owner="23266229" passwd="eccb" /> ; D, p ^' I6 N* O
密码:3 MD5:eccbc87e4b5ce2fe28308fd9f2a7baf3
5 D. U( u ~4 N由此可以判断,此处的passwd为密码加密后的前4位。 9 n' R) v4 A$ E# ?- e/ Y& q
photo_password 文件可查到下列语句:
, U0 w5 { w/ s, Yvar p=""; * B x. H; q' b7 B# _
if (x!=null) p=x.selectSingleNode("/data").getAttribute("passwd");
* T+ C! ~6 D5 l+ z判断此passwd应该是数据库中的某字段名。
4 N6 j$ i4 j. q# Nif (p!="" && hex_md5(pwd).indexOf(p)!=0){ ! ]0 a9 k( M# W* p0 V
alert("密码错误") 4 F1 d6 D2 r6 }8 `1 O
document.getElementById("pass").focus();
& C: j' p' B( f6 wreturn; 9 k& |* J) D4 m0 t& p9 `4 j
} ! f' I4 D; e& N4 B
document.cookie=("album"+albumId+"pwd="+hex_md5(pwd)); 6 q, t6 s9 P1 k% H2 C* P
location="/client/photo_static_big.htm?uin="+uin+"&album="+albumId; / \/ t* e; O5 o# o& a' x: a- [
pwd为输入的密码,经过md5加密。判断此处出现的passwd="eccb"应该是验证输入的密文密码的正确性的。如果正确,使用hex_md5(pwd)进行登陆。 " N/ Z8 J# b- s& O; ?7 R$ s
1 o) h" }' H0 G' ?1 ~
由于qq相册密码提示为8位,那么如果有心人使用相关工具换算处8位以下的所有数字和字母组合的MD5值做成数据库,那么密码就如同虚设。但是考虑到相册密码意义不大,一般情况下不会有人过于无聊拿机器去跑这东西... 似乎最基本常见的的运算次数为几百万亿次,如果谁又兴趣搞几台服务器跑天把做个数据库倒是蛮好,就是大了点准备个TB级的硬盘矩阵吧。如果怕麻烦可以去国外的几个大型MD5数据库查询( ~7 v" |) R# {7 z
|
|