avatar

hackthebox系列——Fuzzy

打开实例后的网站。

点击任何位置,都没有反应,查看源码后分析,该页面没有任何链接能够到其他地方,因此通过工具爆破目录。

这里使用dirmap工具。

1
python dirmap.py -i http://docker.hackthebox.eu:31822/ -lcf

注:-lcf表示的是读取配置文件,dirmap不支持通过命令行详细配置,通过github下载dirmap后,可以通过包中的README.md进行学习。

得到其中存在/api的目录,尝试访问,发现无法访问,那么就再api目录下再进行查找发现,扫不到东西了,那么我们换个思路,是不是在这个目录下就有我们需要的文件呐。

我们通过chrome插件Wappalyzer知道该网站的编程语言是PHP。

我们使用dirmap的fuzz模式,扫描api目录下的.php文件。

1
python dirmap.py -i http://docker.hackthebox.eu:31822/api/\{dir\}.php -lcf

访问action.php。

提示没有设置属性值,那么现在要猜解传递的属性名,我们通过wfuzz来猜解。

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

参数解释:

参数 解释
-c 输出带颜色,好看
-w 指定字典
–hh 如下图,wfuzz的输出中有这几项,–hh代表了chars这一列,后面设置的值为当chars值为该值时隐藏,这里表示的就是chars为24时隐藏。其他三者分别为–hc(response)、–hl(lines)、–hw(word)。

这里详细解释一下参数--hc/--hl/--hw--hh

参数 解释
–hc 通过返回的状态码进行过滤
–hl 通过返回的内容的行数
–hw 通过返回的内容的字数
–hh 通过返回的内容的字符数

我们这里选择字符是因为,观察直接访问action.php的返回,是一串字符,我们可以猜想当正确的属性名被请求时,返回的字符的数量肯定是不同。

这里的24是我们先运行一次不加–hh的参数的时候,发现chars这一列的值是24。

运行后得到结果。

然后访问后,提示需要正确的ID值。

因此继续通过wfuzz来进行猜测具体ID值。

1
wfuzz --hh 27 -c -z range,0-100 http://docker.hackthebox.eu:31891/api/action.php?reset=FUZZ

参数解释:

参数 解释
-z 设置payload的类型,这里是设置一个队列,范围在0-100。

最后得到正确的值为20。

通过网站正常请求后,得到最后的flag。

总结

在这次的实验中,因为中间选择字典的问题,wfuzz一直没有爆破出正确的参数名,在仔细看了别人的wp之后,才发现自己用的和别人的不一样,但是这里就又有了一个新的问题,在进行这些敏感目录、敏感文件、参数猜测的爆破时候,选择字典的依据是什么,什么情况下选择怎样的字典,这个问题需要弄清楚。

然后贴上两个github上的字典:

fuzzdb

seclists

文章作者: 0pt1mus
文章链接: https://superj.site/2020/03/01/20200301174951/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 0pt1mus

评论