刷题记录:[De1CTF 2019]SSRF Me

目录

  • 刷题记录:[De1CTF 2019]SSRF Me
    • 一、涉及知识点
      • 1、MD5长度扩展攻击
      • 2、Python 2.x - 2.7.16 urllib.fopen支持local_file导致LFI(CVE-2019-9948)
    • 二、解题方法
    • 三、总结

刷题记录:[De1CTF 2019]SSRF Me

题目复现链接:https://buuoj.cn/challenges
参考链接:De1CTF ssrf_me 的三种解法
浅析De1CTF 2019的两道web SSRF ME && ShellShellShell

一、涉及知识点

1、MD5长度扩展攻击

参考MD5长度拓展攻击简要笔记
浅谈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

你可能感兴趣的:(刷题记录:[De1CTF 2019]SSRF Me)