先用nmap扫描
22和80端口开放,先观察http,使用dirb和gobuster扫描目录文件,一无所获。
继续观察主页,发现有个图片文件:
查看源码,发现“thm.jpg”
把它下载下来研究。它无法显示,为什么呢?它后缀写着jpg,但他却是个png文件
明显图片被篡改成png文件,现在把它还原
printf '\xff\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01' | dd conv=notrunc of=thm.jpg bs=1
现在图片可以顺利显示:
图片中显示有个隐藏目录的名字
查看源代码,找到一行注释
猜测它有个参数为secret,值为0-99中的一个,随便输入19,它返回
如果一个一个查看太费劲了,写一个python 代码帮我们检测看是否返回的text中包含非wrong。
import requests
host = '10.10.164.38'
url = 'http://{}/th1s_1s_h1dd3n/?secret={}'
for i in range(100):
r = requests.get(url.format(host, i))
if not 'wrong' in r.text:
print("secret: {}".format(i))
print(r.text)
这个“y2RPJ4QaPF!B”应该是密码,但是账号是什么呢?找了好久,才发现原来一开始下载的那张图片还有秘密:
但这还不是正确的账号,根据提示
需要对他进行Rot13
虽然账号是找到了,但密码并不是上面的密码,我把密码ROT13后也不对。郁闷。。。
找了一下其他人的writeup,密码竟然就藏在页面上哪个显示不出来的图片上,就是这个
把它下载下来,然后用steghide找到一个txt文件
I didn't think you'd find me! Congratulations! Here take my password *axA&GF8dP
现在终于可以登录了
打印出user.flag。但是这里sudo -l不起作用
现在需要寻找可以以root权限执行的命令
注意到有个screen-4.5.0,应该是可以利用的
先把41154.sh下载到本地的kali系统,然后在目标机器输入下面的命令下载该脚本
修改它的执行权限,直接执行即可得到root