某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

  • 实验室做题记录

    • 实验室做题记录
    • 服务器端

      • SQL注入

      • 身份验证

      • 目录遍历

      • OS命令注入

      • 业务逻辑漏洞

      • 信息泄露

      • 访问控制

      • 文件上传漏洞

        • 学徒-不受限制的文件上传-webshell
        • 学徒-文件类型验证缺陷-绕过ContentType限制
        • 从业者-阻止文件执行-通过路径遍历绕过
        • 从业者-黑名单验证缺陷-绕过黑名单扩展
        • 从业者-模糊匹配缺陷-混淆文件扩展名
          • 题目
          • 实操
        • 从业者-文件内容验证缺陷-多语言
        • 专家-条件竞争
      • SSRF漏洞

      • XXE注入漏洞

    • 客户端

    • 高级主题

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 服务器端
  • 文件上传漏洞
clincat
2023-07-12
目录

从业者-模糊匹配缺陷-混淆文件扩展名

# 实验室:通过混淆文件扩展名上传web shell

# 题目

此实验室包含一个易受攻击的图像上传功能。某些文件扩展名被列入黑名单,但可以使用经典的混淆技术来绕过这种防御。

要解决实验室问题,请上传一个基本的 PHP Web shell 并使用它来外泄文件/home/carlos/secret的内容,然后使用实验室横幅中提供的按钮,提交文件中的隐藏值。

你可以使用以下凭据登录到自己的帐户:wiener:peter

实验室-从业者

通过混淆文件扩展名上传web shell >>

- name: 实验室-从业者
  desc: 通过混淆文件扩展名上传web shell >>
  avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
  link: https://portswigger.net/web-security/file-upload/lab-file-upload-web-shell-upload-via-obfuscated-file-extension
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

根据题意,可得实验目标:

  • 网站对 文件扩展名 的验证中存在缺陷,尝试上传一个 webshell 获取并提交 /home/carlos/secret 文件的内容。

点击 “ACCESS THE LAB” 进入实验室。

Not Found Image

点击 “My account” 进入登录界面。

Not Found Image

输入题目中提供的用户名密码wiener:peter进行登录。

Not Found Image

启用浏览器代理,尝试上传一张图片。

Not Found Image

查看捕获的请求数据包,并将其转发至 Repeater 功能模块。

Not Found Image

将文件扩展名修改为.php,尝试上传 webshell 文件,上传失败。

Not Found Image

随后经过了一段时间的尝试......(2000 YEARS LATER......)

第一次尝试00截断,我在 HEX 中添加了一个十六进制为 00 的不可见字符,上传失败了。

第二次尝试00截断,我直接在文件名称处添加了 URL 编码之后的 00 字符,形成clincat.php%00.png。

  • 在上传时,验证措施会检查.png扩展名,该扩展名符合要求,允许上传。
  • 在保存文件时,由于处理函数的底层缺陷,字符 00 之后的所有内容都会被截断,最后只剩下clincat.php。
Not Found Image

访问 webshell 文件并尝试执行命令,成功。

Not Found Image

通过 cat 命令获取目标文件的内容,复制长度为 32 位的目标字符串。

Not Found Image

回到实验室主页,点击上方的 “Submit solution” 打开输入框,填入刚刚获得的文件内容,然后点击 “确定” 。

Not Found Image

提交正确,实验完成。

Not Found Image
编辑 (opens new window)
从业者-黑名单验证缺陷-绕过黑名单扩展
从业者-文件内容验证缺陷-多语言

← 从业者-黑名单验证缺陷-绕过黑名单扩展 从业者-文件内容验证缺陷-多语言→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式