[ Mod-X ]-[No.1] 第0~2关 writeup

来源:互联网 发布:鞠婧祎演技知乎 编辑:程序博客网 时间:2024/04/28 04:33

[ Mod-X ]-[No.1] 第0~2关 writeup

这是我之前发现的一个外国的CTF在线训练网站:

http://www.mod-x.co.uk

由于当时水平有限(连注册关都没有破,所以。。。)连网站都没进去,但是经过一段时间的“脑洞训练”,现在已经成功解决了3个题


0.注册关


只有进行注册才能正常访问:

http://www.mod-x.co.uk
然而,我们必须破解这一注册关,才能得到属于自己用户名的密码(注册时可以自己写用户名,但是自己的密码是单独根据用户名生成的,每个人不一样),密码经过加密,被保存在一个.uue文件里。

下载解压之后,使用 file 命令县查看文件类型:

$file Restricted.uue Restricted.uue: uuencoded or xxencoded, ASCII text, with CRLF line terminators

我们可以看到这个文件是经过:uuencode 或者 xxencode 处理过的,所以我们可以直接使用相对应的命令 uudecode 和 xxencode 进行解密

通过 xxdecode 解压之后,得到一个 .zip 压缩包,解压之后,得到 Mod-X 的邀请信,里面有自己的用户名和密码



1.JavaScript关:


这一关中,在所给的网页会利用JS弹窗输入密码,通过使用 firebug 对 JS 进行 console 后,得到JS

var string = "9bb1d6d6832cvrdv22";var enigma = "";var myxor = prompt('Password:','');for (y=1; y<5; y++){enigma += (string.indexOf(y)+1);}enigma += 5;if (myxor==enigma){enigma = enigma + '.php';location.href=enigma;}else {location.href='hahaha.php';}

可以发现,他是将输入的密码与“enigma”进行对比,所以,可以在 if 之前插入 alert(enigma) 将密码现实出来。

var string = "9bb1d6d6832cvrdv22";var enigma = "";var myxor = prompt('Password:','');for (y=1; y<5; y++){enigma += (string.indexOf(y)+1);}enigma += 5;alert(enigma)if (myxor==enigma){enigma = enigma + '.php';location.href=enigma;}else {location.href='hahaha.php';}

然后将弹出的数字重新输入JS原始弹窗中,得出flag。


2.字符解密关:


【仔细阅读原网站的题目】

本关使用了最原始的“位移法“对数据进行加密,类似与 Caser 加密 和 维吉尼亚加密,但是,又和这两的有点区别:

将压缩包下载并且解压:得到 .enc 文件,利用 file 和 cat 查看:

$ file 2.enc 2.enc: Non-ISO extended-ASCII text, with CRLF, CR, NEL line terminators<pre name="code" class="html">$ cat 2.enc qdfdchsSzgjdx~knb`k~l`bghmd{rnesv`qd{l��������{v������{b������u������{q��|Ar������A\AbY{{vhmcnvr{{������RQ{{�������{{r������M���A


1.将每个字符数据都以 十六进制保存:
[0x71,0x64 ,0x66,0x64 ,0x63,0x68 ,0x73,0x53 ,0x0d,0x0d ,0x0a,0x0d ,0x0d,0x0a ,0x7a,0x67, 0x6a,0x64 ,0x78,0x7e ,0x6b,0x6e ,0x62,0x60 ,0x6b,0x7e ,0x6c,0x60 ,0x62,0x67 ,0x68,0x6d,0x64,0x7b ,0x72,0x6e ,0x65,0x73 ,0x76,0x60 ,0x71,0x64 ,0x7b,0x6c ,0x88,0x82 ,0x91,0x8e,0x92,0x8e ,0x85,0x93 ,0x7b,0x76 ,0x88,0x8d ,0x83,0x8e ,0x96,0x92 ,0x7b,0x62 ,0x94,0x91, 0x91,0x84 ,0x8d,0x93 ,0x75,0x84 ,0x91,0x92 ,0x88,0x8e ,0x8d,0x7b ,0x71,0x94 ,0x8d,0x7c,0x0d,0x0d ,0x0a,0x41 ,0x72,0x98 ,0x92,0x93 ,0x91,0x80 ,0x98,0x41 ,0x5c,0x41 ,0x62,0x59, 0x7b,0x7b ,0x76,0x68 ,0x6d,0x63 ,0x6e,0x76 ,0x72,0x7b ,0x7b,0x92 ,0x98,0x92 ,0x93,0x84,0x8c,0x52 ,0x51,0x7b ,0x7b,0x83 ,0x91,0x88 ,0x95,0x84 ,0x91,0x92 ,0x7b,0x7b ,0x72,0x98,0x92,0x93 ,0x91,0x80 ,0x98,0x4d ,0x84,0x97 ,0x84,0x41 ,0x0d,0x0a]

2.对每一个在 31 到 127 的数据进行位移,发现当位移为+1时,能得到以下内容:

regeditT{hkey~local~machine|software|m��������|w������|c������v������|r��}Bs������B]BcZ||windows||������SR||�������||s������N���B

说明内容不是只位移一次就能解密:因为其中还包含 0x80 以上的数据,接着对其进行减法,发现当位移为+31时,能将更多数据解码:

regeditT{hkeylocalmachine|software|microsoft|windows|currentversion|run}BsystrayB]BcZ||windows||systemSR||drivers||systrayNexeB

 到此,我们可以大致看出,这是一个 关于windows 的注册表的东西,打开脑洞猜windows解路径名:

windows 时在 c:\ 下面,所以最前面是 c:\

接着,二级目录是:WINDOWS

在windows 下面带有system的有system32,(其中,SR对应的ASCII码末尾刚好是3和2),所以三级目录是:system32

紧接着是 DRIVERS然后
systrayNexeB
猜想这是一个.exe 文件,百度 systray.exe 之,真的存在这个目录下的这个文件


综上所述:路径名为 c:\WINDOWS\system32\DRIVERS\systray.exe


0 0
原创粉丝点击