UPDATE1:想了半天。还是又把这篇文章发出来了。希望大家好好珍惜这个资源,不要浪费。
UPDATE2:你现在看到这篇文章为时已晚。见《和hax.tor.hu说再见》

我申请成功了,前面3道题几乎没变,第4道题方法没变,最后一道题,答案还是4个字母,但是对应字母和数字对应顺序可能和文中提到的不太一样了。要试几次找找规律。有问题可以给我留言。

hax.tor.hu 是一家提供带ssh的免费php+mysql虚拟主机的空间服务商,而且它的SSH隧道是开通的,但是想获得这一免费午餐,却让我大伤脑筋,因为它要求通过它的五道变态难题才行。

打开 http://hax.tor.hu/warmup1/ 开始猜解密码

1.这道题是用javascript设置的,提示“Password is in source.”说明密码就在网页之中,打开源码找到JS部分:
function a(){   thepw = ‘warmup1′;   thepw = thepw+’lol’;   thepw = thepw + ‘copter’;
if (document.lf.pw.value==thepw) {     document.location = ‘/’+thepw; }
else { alert(‘That is not correct. Please try   again.’);   } }  看到了吧,密码是 “warmup1lolcopter”.

2.提示输入 www.fbi.gov 的SSH标记,有几个了解这些的连接,然而,这些连接只是扰乱视听。SSH一般使用22 端口,所以使用 PUTTY 或者是 telnet 尝试。
telnet  www.fbi.gov 22  之后,出现的字符 SSH-1.99-Server-VII 便是答案

3.提交 “Bacon” 的变量名称。
这个简单,源码中的 select name=”chosen”> 说明 name=”chosen” ,所以在当前的浏览器中输入 http://hax.tor.hu/warmup3/?chosen=Bacon 回车就到第四关。

4.提示 密码又在源码中,打开源码并没有找到任何密码,密码一定在网页的报头中,Telnet 看看
telnet hax.tor.hu 80
回车输入
GET /pwfor4/ HTTP/1.1
Host: hax.tor.hu
看到返回信息了。
HTTP/1.1 200 OK
Transfer-Encoding: chunked 22 The password is: stickpick  DOS窗口自动关闭。密码提示为 stickdeath

5.最后的一道难题。提示是下面的字符串是被加密后的密码,意思是解密给出的数值就是密码68 228 94 125 67 210 82 19
胡乱输入一个字符回车后,晕倒:Hash !!!也就说给出的那些数字是密码的哈希值,而哈希算法从来有名
尝试了几次之后,发现这也不是什么 哈希 目前是 site
破解方法: 两个数字的组合,代表一个字母,三个数字的组合标记位数,所以不用理睬三个数字的组合,也不用管最后两个数字的组合。

对应表单
a 77
b 78
c 79
d 72
e 73
f 74
g 75
h 68
i 69
j 70
k 71
l 64
m 65
n 66
o 67
p 92
r 94
s 95
t 88
u 89
w 91
z 86

比如:68 228 94 125 67 210 82 19 就是 site

===============================================

过了这五道难关,就可以申请账号了。输入账号,Email 后就去收邮件,收到邮件就登陆。https://hax.tor.hu/login 刚一登陆,就面对的是 Challenges Level 1,就是输入一个符合其要求的URL,然而这个URL几乎是不存在的。别担心,不用理睬Challenges Level,点左栏的 [ Shell ],申请 shell 账号,账号密码会邮件给你。下来开始配置 VHOST,配置空间大小,选 2000M 后点 “Update quota”,点 Web Setup 添加域名,在三个框中按照提示输入:

你的账号.shell.tor.hu www.你的账号.shell.tor.hu /home/home/www/你的账号.shell.tor.hu

点 “Add vhost” 完成。可以按照提示输入自己的域名,需要做CNAME 或者是 A 记录。这里是说明文件
http://shell.tor.hu/doc/web.txt
终于完成了申请,开始传文件。登陆FTP之后,如果是一片空白,则建立目录 www/你的账号.shell.tor.hu,
并把文件传到这个目录,好了,现在打开 http://你的账号.shell.tor.hu
shell 的使用,装上 putty 就能连上 shell.tor.hu ,又开始了 BSD 操作,usr/bin
http://hax.tor.hu/read/

————————————————–华丽的分割线————————————————–

下面的挑战对申请空间和ssh没有影响

level1挑战:

Your mission is the following: Simply enter a URL into the box. The domain of the URL must be or end with ‘nasa.gov’. The URL will be fetched right away. The content returned should contain the string: “2110871203″ in the first 10 Kbytes of data. 404/403/etc error pages are not accepted. Remember, do not do anything illegal. Make sure you type the right URL, do not guess.

Hint: google is your friend.

这个题我半天没弄明白什么意思。Google了半天没找到答案。后来恍然大悟。解决方案如下:

登录nasa.gov,在搜索框里输入2110871202,确定即可。结果可想而知,找不到任何结果。但是没关系,这个网址就是答案。因为它既是以nasa.gov结尾,又包含2011871202。

level2挑战:

debfKNH1AvtBo deGH9Aq./kiSY denjFRfA8kzL2 deCfBQ0MS4MSA delCZeH4hHOq. deKaHJpaMFqSk deURVbdSEtxPo deImhlc0Y/L/k dehu92waVC.Pk deVX2jv60XD4Q detlQw1i3GbU2 der4QGDteh9qY

问题提示是使用the Ripper password cracker。

这一个题给出的实际上加密的unix口令,我们构造如下passwd文件:

user1:debfKNH1AvtBo:1:1:user:/home/user1:/sbin/nologin

user2:deGH9Aq./kiSY:1:1:user:/home/user1:/sbin/nologin

user3:denjFRfA8kzL2:1:1:user:/home/user1:/sbin/nologin

user4:deCfBQ0MS4MSA:1:1:user:/home/user1:/sbin/nologin

user5:delCZeH4hHOq.:1:1:user:/home/user1:/sbin/nologin

user6:deKaHJpaMFqSk:1:1:user:/home/user1:/sbin/nologin

user7:deURVbdSEtxPo:1:1:user:/home/user1:/sbin/nologin

user8:deImhlc0Y/L/k:1:1:user:/home/user1:/sbin/nologin

user9:dehu92waVC.Pk:1:1:user:/home/user1:/sbin/nologin

user10:deVX2jv60XD4Q:1:1:user:/home/user1:/sbin/nologin

user11:detlQw1i3GbU2:1:1:user:/home/user1:/sbin/nologin

user12:der4QGDteh9qY:1:1:user:/home/user1:/sbin/nologin

然后下载Ripper password cracker进行破译就可以了。其实破译结果是:

all you do now is enter 7 words with spaces between them

然后你随便输入7个字母就可以了,用空格隔开。比如a b c d e f g

level3挑战:

V m 0 w d 2 Q y U X l V W G x X Y T F w T 1 Z s Z G 9 W R m x 0 Z U V 0 W F J t e F Z V M j A 1 V j A x V 2 J E T l h h M k 0 x V j B a S 2 M y S k V U b G h o T W s w e F Z t c E d T M k 1 5 U 2 t W V W J H a G 9 U V 3 N 3 Z U Z a d G N F Z F R N b E p J V m 1 0 c 2 F W S n R h R z l V V m 1 o R F Z W W m F k R 0 5 G Z E Z S T l Z U V k p W b T E w Y T F k S F N r Z G p T R U p Y W V R G d 2 F G W k Z S U Q :)
这个题最后给的是个超链接,指向http://en.wikipedia.org/wiki/Base64。也就是提示这是经过Base64加密的。
求解过程是首先把空格去掉,然后打开http://home2.paulschou.net/tools/xlate/
把文本输入到BASE64里面,然后会在TEXT里显示解码出的内容。不过不用高兴,还是乱码。接下来要做的就是重复把得到的TEXT放入BASE64进行解码,N次之后会得到结果:64BASE!

level4挑战:

IP address is 209.85.171.83 (gmail.com). Password is a domain (domain.tld format, no subdomains) that contains the word “poker” and resolves to it. You don’t have to buy a domain :) *hint*
最后提示的链接是http://www.google.com/search?q=ip2vhost,也就是让你找一个把ip转化为vhost的网站或者工具。Goolge搜出来的是http://gagspace.com/ip2vhost/,这个不好用,查半天查不出来。推荐用http://domainbyip.com/,输入209.85.171.83就得到结果了:pokeronlineexperts.com。

level5挑战:

We need the owl’s name. The owl appearing on the default vhost on hax.tor.hu’s IP.

Password is ??? ? owl.

让找到猫头鹰的名字。
找到hax.tor.hu的IP:94.125.248.43,然后Google一下就能找到http://hq.secretservice.hu/。打开会显示一个闪动的图片,猫头鹰的名字叫“uid 0”。
level6挑战:
Let’s see you do some easy SQL ninjitsu. The password is on this page, if you get past the login.
这是一道简单的SQL注入题。用户名和密码都输入‘or ‘a’='a即可看到密码:0×90
level7挑战:
We have a snifflog.txt. What is the password for the account “transaction”?hint
这一个挑战不大好做。最后给出的提示链接是关于MS SQL Server Captured Authentication Packets Cracker的源代码。文中有这么一段话:

The algorithm to encrypt the password is simply to expand every byte of the password to 2 bytes, swap the higher and lower 4 bits within each byte, xor each byte with A5. For example to encrypt the character “p”:

(ASCII is 70 hex):

70 is expanded to 70 00

After the swap the result is: 07 00

XOR with A5: A2 A5

Hence to decrypt it, we will take the odd bytes, XOR with A5, and swap the higher and lower 4 bits.

Take A2

XOR with A5: A2 XOR A5 = 07

Swap: 7 becomes 70.

This tool make use of the WinPcap library and it listen on TCP port 1433 and 2433 and perform the above algorithm to retrieve user name and password.

经过观察会发现snifflog.txt里有这么一段
00 00 00 00 00 00 48 00 41 00 4b 00 74 00 72 00 ……H.A.K.t.r.
61 00 6e 00 73 00 61 00 63 00 74 00 69 00 6f 00 a.n.s.a.c.t.i.o.
6e 00 b1 a5 93 a5 e2 a5 f6 a5 c6 a5 b6 a5 11 a5 n……………
f3 a5 32 a5 4d 00 69 00 63 00 72 00 6f 00 73 00 ..2.M.i.c.r.o.s.

transaction后面,Microsoft前面跟着一段十六进制数
b1 a5 93 a5 e2 a5 f6 a5 c6 a5 b6 a5 11 a5 f3 a5 32 a5,这些数和前面给的例子很像。按上面
的步骤将些数破解得到密码:Act561Key

level8挑战:

The password is shown on this jpg picture: index.jpg. You need a Hungarian host (ip with a .hu
reverse) to surf to it. Think, before you think you’re fucked or start googling for an open proxy
- there are easier ways (there is a reason why it is a picture), and you can cheat, too. Oh, and
for the love of god, please do not spam / post. It is not needed.

这一个挑战非常简单。你可以找个匈牙利(.hu)的代理,或者既然你已经走到了这一步,说明你
已经有了shell.tor.hu的帐号了。运行
wget https://hax.tor.hu/level8/the_password/index.jpg即可。如果提示证书有问题,则运行
wget –no check-certificate https://hax.tor.hu/level8/the_password/index.jpg即可。图片上可以
找到答案:tehpw

level9挑战:

This is a relax-level :) DDoS is arriving from various hosts around the
world. 1/4 from the USA, 1/6 from Europe, 1/8 from Asia. There are 120
more hosts from Europe than Asia. Password is the total number of
attackers involved.

小学算术题,答案是2880

level10挑战:

D xdbf p xdjf nu-xduf * D ypbf un mfumf nj wdgf * Dumdcf p xps pxx cpv * D’bf pxipvm sffu wydm ipv * D’g p kfft * D’g p kfft * Ny yn D’g p kfft * Knnc Xnec D’g p kfft. *** Wyf opmminec dm idxcwyduk

(hint)

最后给的提示是Computer songs and poems: g。这个好像是摩斯码之类的加密算法吧。可以按每个单词的字母个数找到对应的诗。这里对应的是Geek这首诗。按字母替换就可以找到答案:wildthing

level11挑战:

Enter the hash for: “k y l h” (without spaces/quotes).Oh, BTW… You have exactly 7 seconds to do this :)

hint, cheerleader, hint2

字符串是随机给的,时间最长是10s。提示给的链接是自动抽取字符串并计算md5的perl脚本和计算md5的网页。这道题实在是太麻烦了,我尝试了N种方法,具体代码我就不贴出来了,因为字符串是变的,所以也没固定答案。提供几个思路:

(1)手工计算。要求网速好,眼疾手快。ps:看看cheerleader这张图就知道这招不大现实。

(2)使用java或者其他语言自动获取网页,提取字符串,计算md5并提交。这个方法难点在于网页是https协议,而且要用post方法先登录网页。

(3)如果使用firefox,可以使用Greasemonkey插件添加js脚本,提取字符串,计算md5并输入到密码框里。ps:在尝试了(1)(2)失败后,我就是用的这个方法。

(4)其他方法。

level12挑战:

This is another relax-level :) Password is the solution to another game.

Mindfuck game: Round 1, Level 4.

Round 1, Level 1:wlcome

Round 1, Level 2:positive

Round 1, Level 3:chicken

Round 1, Level 4:sense

level13挑战:

The password to this level is shown upon login with a valid user/pass combination. Of course you don’t have to walk in the dark – you have the source for the script right here. Hint: bruting usernames is futile (in other words, don’t waste time on it).

问题提示的两个网址是https://hax.tor.hu/level13/login/index.php和https://hax.tor.hu/level13/login/source.php?file=index.php。第二个地址告诉我们source.php能让我们查看文件的源代码。/login/index.php里有这么关键的几句:

$rawconf = @file(“.htconfig”); // some config vars read from .htconfig 这告诉我们要查看.htconfig文件。直接访问不行,用https://hax.tor.hu/level13/login/index.php和https://hax.tor.hu/level13/login/source.php?file=.htconfig访问。
base /www/hax.tor.hu/www/level13/login/
userdir udir
fundir fundir

$info = implode(”,@file($conf['base'].$conf['userdir'].’/’.$user.’/info.txt’));这告诉我们要获取
user。我就是在这里卡住的。不知道要去哪里找。经别人提示,需要查看/index.php,但是这个
文件和/login/source.php是在同一目录下,而source.php告诉我们它会过滤“:”和“..”。这里我们用绝对
路径查看https://hax.tor.hu/level13/login/index.php和https://hax.tor.hu/level13/login/source.
php?file=/www/hax.tor.hu/www/level13/index.php。源代码里有一句注释:
// The only username is ‘justme’. But I doubt you need that any more :) )
用justme用户名获取info.txt

https://hax.tor.hu/level13/login/index.php和https://hax.tor.hu/level13/login/source.php?file=

/udir/justme/info.txt得到密码verynice
这里我有个疑问,/www/hax.tor.hu/www/level13/index.php这个路径是绝对路径吗?这个绝对路
径的根应该不是linux的根目录下,好像是php服务的根目录(apache或者nginx)。高手可以给我留言。file()
函数的绝对路径到底从哪里开始?

level14挑战:

9 e 9 2 5 e 9 3 4 1 b 4 9 0 b f d 3 b 4 c 4 c a 3 b 0 c 1 e f 2 0 7 c c
6 9 4 b 9 b 3 f c 6 3 6 7 1 0 f a 0 8 b 6 9 2 2 c 4 2 b e 2 a 7 1 0 6 f
1 c c 8 b b 1 e 1 3 1 8 d f 7 0 a a 0 a 3 5 4 0 c 2 0 a d 4 d 7 6 f e 9
7 7 5 9 a a 2 7 a 0 c 9 9 b f f 6 7 1 0 8 9 7 5 9 e 1 2 8 4 e 2 4 7 9 b
9 9 1 d 2 6 6 9 d e 1 0 4 9 4 2

这个是md5值,需要破解。把上面的md5分成4段然后去http://www.xmd5.org/破解就可以了。破
解得到的是“thistime enter 12 words”。输入12个字母就可以。记得中间带空格。

level15挑战:

When was www.download.com‘s webserver last restarted?

Password is YYYY-MM-DD hh format. (hh=hours, two digits)

Bonus: Some listening material while reading the manual

UPDATE: Unfortunately download.com/server-status/ no longer exists. :-(
Type ‘drat’ to move to the next level.

失效了,输入drat过关。

level16挑战:

Log from a backdoored SSHD. Only one catch in days, and even this one doesn’t seem to work. Any other ideas what the root password to 10.0.0.5 might be?

SSHAUTH_IN root:hsmfs;g@10.0.0.5
打字的时候键盘歪了,冒号后面的字母按向左移一个键。密码是:gandalf

level17挑战:

没看懂什么意思。