目录
刷题记录:[De1CTF 2019]SSRF Me
题目复现链接:https://buuoj.cn/challenges
参考链接:De1CTF ssrf_me 的三种解法
浅析De1CTF 2019的两道web SSRF ME && ShellShellShell
一、涉及知识点
1、MD5长度扩展攻击
攻击场景:file=filename&hash=md5($secret_key.filename)
验证成功下载文件
目的:传入任意filename实现任意文件读取
条件:
- 已知任意一个
md5($secret_key.filename)
,并且知道filename的明文。 - 已知
secret_key
的长度。 - 用户可以提交md5值。
- 工具:HashPump/python模块:hashpumpy
2、Python 2.x - 2.7.16 urllib.fopen支持local_file导致LFI(CVE-2019-9948)
https://bugs.python.org/issue35907
- 当不存在协议的时候,默认使用
file
协议读取 - 可以使用
local_file:
绕过,例如local_file:flag.txt
路径就是相对脚本的路径local_file://
就必须使用绝对路径(协议一般都是这样)
PS:local-file:///proc/self/cwd/flag.txt
也可以读取,因为/proc/self/cwd/
代表的是当前路径 - 如果使用 urllib2.urlopen(param) 去包含文件就必须加上
file
,否则会报ValueError: unknown url type: /path/to/file
的错误
二、解题方法
见参考链接,不做赘述
三、总结
对代码要有敏感性,善于搜索已有的漏洞
cve库:cve database