如何使用SSRF控制FTP服务器攻击内网的mongodb

本文详细描述了如何通过CRLF漏洞在星CTF挑战oh-my-bet中,利用flask搭建的Web服务器与虚拟机上的MongoDB和FTP服务器进行交互,实现恶意数据包注入和数据库内容修改的过程。

1 背景

最近在尝试做 starCTF 中的 oh-my-bet,需要使用 CRLF 漏洞来控制 FTP 向 mongodb 中发送数据包来修改 mongodb 中的内容。我尝试着自己手动构建了一个简易的环境来实现大致的流程。

2 环境搭建

使用虚拟机 + 主机两台机器来实现整个流程:

  1. 宿主机(Web 服务器)
  2. 虚拟机(用来攻击的服务器)

2.1 搭建mongo环境(宿主机和虚拟机)

在宿主机和虚拟机都需要搭建mongo环境,为了不与主机的 mongo 重合,我采用 27018 端口

docker run -itd --name mongo -p 27018:27017 mongo

2.2 flask(宿主机)


#!/usr/bin/env python
# -*- coding:utf-8 -
from flask import Flask, session
from flask_session import Session
import pymongo

app = Flask(__name__)

app.debug = True
app.secret_key = 'f4545478ee86$%^&&%$#'
app.config['SESSION_TYPE'] = 'mongodb'  # session 类型为 mongodb

app.config['SESSION_MONGODB'] = pymongo.MongoClient(host='127.0.0.1', port=27018)
app.config['SESSION_MONGODB_DB'] = 'admin'
app.config['SESSION_MONGODB_COLLECT'] = 'sessions'

# 如果设置为True,则关闭浏览器session就失效。
app.config['SESSION_PERMANENT'] = True
# 是否对发送到浏览器上session的cookie值进行加密
app.config['SESSION_USE_SIGNER'] = False
# 保存到session中的值的前缀
app.config['SESSION_KEY_PREFIX'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值