刷题记录:[De1CTF 2019]SSRF Me
题目复现链接:https://buuoj.cn/challenges
参考链接:De1CTF ssrf_me 的三种解法
浅析De1CTF 2019的两道web SSRF ME && ShellShellShell
一、涉及知识点
1、MD5长度扩展攻击
当已知以下三点
- md5(salt+message)的值
- message内容
- salt+message长度
我们可以在不知道salt的具体内容的情况下,计算出任意的md5(salt+message+padding+append)值 - 工具: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