- 在线时间
- 1075 小时
- 积分
- 50 分
- 飞币
- 1875 元
- S币
- 3 元
- 最后登录
- 2012-2-23
- 注册时间
- 1970-1-1
- 帖子
- 1301
- 精华
- 3
- 积分
- 243
- 阅读权限
- 255
- UID
- 2
 
|
发表于 2012-1-28 02:34:32
|显示全部楼层
一个黑客游戏的通关记录…
转自:蝶浪网络::Deloz.Net
黑客闯关游戏入口:http://hackgame.blackbap.org
第1关:突破客户端,奸商说,无论如何您都是错的…
根据提示,输入PassWord,和一些随便的密码,发现都是提示"密码不能为空/非空"的. -_-!! 不管,按F12(或Ctrl+Shift+I)启用Chrome的开发工具…可以看到表单提交时调用了一个JS函数chk_submit(),- <form method="post" action="" onsubmit="return chk_submit();">
复制代码 按ESC启用控制台,输入chk_submit()看下这个函数是怎么样的,输入时Chrome会自动提示,很方便.. 按tab键,自动完成输入,再按回车..就看到这个函数的代码了…果然,不论输入什么,都是返回false,如下图
好吧,改变chk_submit()的值, 在控制台输入chk_submit = true;按回车..
然后,回到页面上,输入password,回车.,就跳到第2关了.
第2关:逆向解密,您是否拥有逆向解密的思维…
这次给出了"提示在这里",鼠标放过去, 却点击不了…查看下源码,原来注释了…打开 http://hackgame.blackbap.org/tip/nozend.php 看到一串PHP代码,最后一句很明显是解密,但代码中没有写解密部分..既然是逆向…那我就反着写,代码如下-
- <?phpfunction notrealmd5code($string,$operation='ENCODE') {
- if ($operation=='ENCODE'){
- $OutTxt = "";
- for ($x=0;$x<strlen($string);$x++) {
- $nr = ord($string[$x]);
- if ($nr < 128) {
- $nr += 128;
- } elseif ($nr > 127) {
- $nr -= 128;
- }
- $nr = 255 - $nr;
- $OutTxt .= sprintf("%02x", $nr);
- }
- return $OutTxt;
- } else {
- /* DECODE MISS
- * ord Return ASCII value of character
- */
- $str = str_split($string , 2);
- $txt = '';
- foreach ( $str as $key=>$value ) {
- $dec = hexdec($value);
- $nr = 255 - $dec;
- if ( $nr > 128 ) {
- $nr -= 128;
- } elseif ( $r < 127 ) {
- $nr += 128;
- }
- $txt .= chr($nr).$xt;
- }
- return $txt;
- }
- }
- echo notrealmd5code('C25D765DC2B0CA75B741310830E8E8CB','DECODE');
- ?>
复制代码 运行一下,输出为comegamepoint222输入这一串,口令正确,通关…
第3关:寻找Password…
Windows和Linux密码存放路径,我不知,google了一下,找到答案是c:\windows\system32\config\SAM和/etc/passwd
根据提示,下载暴力密码工具
算出NTLM串d18e760f2b15a239328274a447cd67f7的原文是*#!*和MD5串 $1$1zUVF6AN$uHBYbOv4WW1Z9kkKFnJ2v.的原文(电脑卡,就不算了.)
第4关:挖掘规则里面的漏洞…
下载给出的PDF文件,然后去提示里边的http://bbs.blackbap.org/viewthread.php?tid=1737看下文章,用VIM打开这个PDF,输入/Action按回车, 就搜索到第32行,如下图, 方括号之内的16进制代码70617373776F72642069733A7064666973576964656C7921,很明显这就是目标.
根据论坛文章所说的是个字符串,所以,把16进制转换成字符串用PHP转换,如下.
-
- <?php
- $str = '70617373776F72642069733A7064666973576964656C7921';
- $data = str_split($str, 2);
- foreach ( $data as $item ){
- echo chr(hexdec($item));
- }
- ?>
复制代码
运行一下,输出password is:pdfisWidely!把pdfisWidely!输入页面,回车..通关…
第5关:页面自身的缺陷,他们说输入的地方就是攻击的开始…
根据提示, 在Chrome按Ctrl+U,看看源码,找到do_try函数,会看到下边有个do_other, 注释中写着//getpwd, 说明开发人员调试时的代码没有删除掉…
于是把do_try()修改为do_other(‘getpwd’),如下图
得到密码URsoGreat 至此,通关完毕… |
|