cdxy.me
Footprints on cyber security and Python

Research
前两篇文章介绍了Mirai Botnet环境搭配、源码编译及修正、使用说明等。 Build Mirai botnet (I): Compile Mirai Source Build Mirai botnet (II): Bruteforce and DDoS Attack 本篇从流量和源码两个方面分析并提取Mirai各组件指纹。 Bot上线 发送方 协议 数据 bot telnet ... Read More
Research
登入CNC 首先看一下CNC部分的源码。 入口 /Mirai/mirai/cnc/main.go line 18 func main() { tel, err := net.Listen("tcp", "0.0.0.0:23") if err != nil { fmt.Println(err) return } api, err := net.Listen("tcp", ... Read More
Research
This article summarizes unsafe functions and exploits in Python command/code execution. os Unsafe functions os.system os.popen os.popen2 os.popen3 os.popen4 Exploit >>> import os >>> ... Read More
Research
An installation guide has been given by Mirai's author: https://github.com/jgamblin/Mirai-Source-Code/blob/master/ForumPost.md Here provides detailed installation commands. Install requirements ... Read More
Research
CMS某些需求导致服务器主动向外发起请求,比如从外部URL添加资源: 目前很多成熟cms并不能有效控制该接口风险,我的第一个CVE就由它而来。 技术细节不再叙述,建议先阅读P神的文章,其中给出了非常棒的Python解决方案。 谈一谈如何在Python开发中拒绝SSRF漏洞 防御策略 使用计数器确保30x跳转不会进入死循环 ... Read More
Security Misc
1 购买或搭建服务 可以自己购买海外服务器搭建,或者付费向服务商索取shadowsocks的登录凭证,一般包含如下字段: {"server":"xxx.xxx.xxx","server_port":xxx,"password":"xxx","method":"xxx"} 我们把这段json代码存储为/etc/shadowsocks/jp.json 2 下载客户端 下载:pip ... Read More
Research
Template Injection 之前两篇曝光率很高的文章中指出了Flask SSTI成因及利用方式 exploring-ssti-in-flask-jinja2 exploring-ssti-in-flask-jinja2-part-ii 文中已指出利用方式,事实上使用__class__.__base__.subclasses__可以直接执行命令。 {% for c in ... Read More
Penetration Testing
之前的案例 《某Python学习网站在线编码导致命令执行》 漏洞修复后再次绕过的两种方法。 测试仍以黑名单形式过滤关键字。且只过滤用户输入,并未影响到运行时。 方案 复活eval/exec函数 通过eval执行简单混淆过的payload躲避黑名单 通过os.popen拿到shell 方法1:复活eval poc exp a = 'e' + 'val' p = 'po' + 'pen' ... Read More
Research
防御机制 目前主流CSRF的防御思路可总结为:在用户携带的信息(Cookie)之外置入token并在服务端检验,该token要满足一次性、随机性 主流Python后端框架(Flask/Django/Tornado)使用Session/Cookie-Form的验证机制避免CSRF。 Flask官方文档给出的解决方案(Session-Form): ... Read More
Web development
Requirements apt-get install virtualenv python-dev supervisor nginx git (venv) pip install uwsgi uWSGI uwsgi.ini [uwsgi] socket = 127.0.0.1:8080 wsgi-file = wsgi.py callable = app processes = 4 ... Read More