1 背景
最近在尝试做 starCTF 中的 oh-my-bet,需要使用 CRLF 漏洞来控制 FTP 向 mongodb 中发送数据包来修改 mongodb 中的内容。我尝试着自己手动构建了一个简易的环境来实现大致的流程。
2 环境搭建
使用虚拟机 + 主机两台机器来实现整个流程:
- 宿主机(Web 服务器)
- 虚拟机(用来攻击的服务器)

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'

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

被折叠的 条评论
为什么被折叠?



