hackgame blackbap攻略

本文详细介绍了黑客闯关游戏的通关攻略,包括突破客户端、逆向解密、寻找密码、挖掘规则漏洞等关键步骤,通过代码分析和逻辑推理,成功完成每一关挑战。
本文转载自拉砖的家伙 《hackgame blackbap攻略》
黑客闯关游戏入口: http://hackgame.blackbap.org

第1关:突破客户端,奸商说,无论如何您都是错的…
根据提示,输入PassWord,和一些随便的密码,发现都是提示"密码不能为空/非空"的. -_-!! 不管,按 F12 (或 Ctrl+Shift+I )启用Chrome的开发工具…可以看到表单提交时调用了一个JS函数chk_submit(),
  1. <form method="post" action="" onsubmit="return chk_submit();">
复制代码
按ESC启用控制台,输入 chk_submit() 看下这个函数是怎么样的,输入时Chrome会自动提示,很方便.. 按tab键,自动完成输入,再按回车..就看到这个函数的代码了…果然,不论输入什么,都是返回false,如下图

1.png 

好吧,改变chk_submit()的值, 在控制台输入 chk_submit = true;按回车..
然后,回到页面上,输入 password,回车.,就跳到第2关了.

第2关:逆向解密,您是否拥有逆向解密的思维…
这次给出了"提示在这里",鼠标放过去, 却点击不了…查看下源码,原来注释了…打开  http://hackgame.blackbap.org/tip/nozend.php 看到一串PHP代码,最后一句很明显是解密,但代码中没有写解密部分..既然是逆向…那我就反着写,代码如下

  1. <?phpfunction notrealmd5code($string,$operation='ENCODE') {
  2.     if ($operation=='ENCODE'){
  3.             $OutTxt = "";
  4.             for ($x=0;$x<strlen($string);$x++) {
  5.                     $nr = ord($string[$x]);
  6.                     if ($nr < 128) {
  7.                             $nr += 128;
  8.                    } elseif ($nr > 127) {
  9.                             $nr -= 128;
  10.                     }
  11.                     $nr = 255 - $nr;
  12.                     $OutTxt .= sprintf("%02x", $nr);
  13.             }
  14.             return $OutTxt;
  15.     } else {
  16.     /* DECODE MISS
  17.     * ord  Return ASCII value of character
  18.     */
  19.             $str = str_split($string , 2);
  20.             $txt = '';
  21.             foreach ( $str as $key=>$value ) {
  22.                     $dec = hexdec($value);
  23.                     $nr = 255 - $dec;
  24.                     if ( $nr > 128 ) {
  25.                             $nr -= 128;
  26.                     } elseif ( $r < 127 ) {
  27.                             $nr += 128;
  28.                     }
  29.                     $txt .= chr($nr).$xt;
  30.             }

  31.                 return $txt;
  32.     }
  33. }
  34.     echo notrealmd5code('C25D765DC2B0CA75B741310830E8E8CB','DECODE');
  35. ?>
复制代码
运行一下,输出为 comegamepoint222输入这一串,口令正确,通关…

第3关:寻找Password…
Windows和Linux密码存放路径,我不知,google了一下,找到答案是 c:\windows\system32\config\SAM/e tc/passwd

2.png 

根据提示,下载暴力密码工具

3.png 
4.png 
5.png 
6.png 
7.png 
8.png 


算出NTLM串d18e760f2b15a239328274a447cd67f7的原文是 *#!*和MD5串 $1$1zUVF6AN$uHBYbOv4WW1Z9kkKFnJ2v.的原文(电脑卡,就不算了.)

第4关:挖掘规则里面的漏洞…
下载给出的PDF文件,然后去提示里边的 http://bbs.blackbap.org/viewthread.php?tid=1737看下文章,用VIM打开这个PDF,输入 /Action按回车, 就搜索到第32行,如下图, 方括号之内的16进制代码 70617373776F72642069733A7064666973576964656C7921,很明显这就是目标.

9.png 
根据论坛文章所说的是个字符串,所以,把16进制转换成字符串用PHP转换,如下.

  1. <?php
  2. $str = '70617373776F72642069733A7064666973576964656C7921';
  3. $data = str_split($str, 2);
  4.     foreach ( $data as $item ){
  5.        echo chr(hexdec($item));
  6.     }

  7. ?>
复制代码

运行一下,输出 password is:pdfisWidely!pdfisWidely!输入页面,回车..通关…

第5关:页面自身的缺陷,他们说输入的地方就是攻击的开始…
根据提示, 在Chrome按Ctrl+U,看看源码,找到do_try函数,会看到下边有个do_other, 注释中写着//getpwd, 说明开发人员调试时的代码没有删除掉…

10.png 

于是把 do_try()修改为 do_other(‘getpwd’),如下图

11.png 

得到密码URsoGreat 至此,通关完毕…
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值