某不知名博客 某不知名博客
首页
  • 《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

# 题目

此实验室包含一个易受攻击的图像上传功能。服务器被配置为阻止执行用户提供的文件,但利用辅助漏洞 (opens new window)可以绕过此限制。

要解决实验室问题,请上传一个基本的 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-path-traversal
  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

上传成功。

Not Found Image

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

Not Found Image

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

上传成功,并未受到任何阻拦。

Not Found Image

在浏览器中访问 webshell 文件,文件内容以纯文本形式返回。

Not Found Image

说明.php文件受到了限制,无法被作为代码执行。

Not Found Image

根据提示,我们可以利用 文件上传+路径遍历 漏洞组合拳来绕过该限制。

假设,即将上传的文件会被放到上一级目录/files/clincat.php,此时文件还不存在。

Not Found Image

修改请求数据包,在filename参数中添加路径遍历序列,形成文件名../clincat.php。

发送修改过后的数据包,上传成功,响应信息并没有什么不同。

Not Found Image

随后访问/files/clincat.php,文件依然不存在。

Not Found Image

想想问题出在哪里,难道是因为文件名称中存在特殊符号?

尝试将路径遍历序列../中的斜杠进行 URL 编码,形成新的文件名..%2fclincat.php。

再次发送数据包,上传成功。响应信息有所不同,路径遍历序列生效了。

Not Found Image

访问/files/clincat.php并尝试执行命令,成功。

Not Found Image

通过 cat 命令读取目标文件的内容。

/files/clincat.php?command=cat /home/carlos/secret
1

复制长度为 32 位的目标字符串。

Not Found Image

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

Not Found Image

提交正确,实验完成。

Not Found Image
编辑 (opens new window)
学徒-文件类型验证缺陷-绕过ContentType限制
从业者-黑名单验证缺陷-绕过黑名单扩展

← 学徒-文件类型验证缺陷-绕过ContentType限制 从业者-黑名单验证缺陷-绕过黑名单扩展→

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