国赛 Web 文件包含

Posted Amet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了国赛 Web 文件包含相关的知识,希望对你有一定的参考价值。

Web题目已经提示是文件包含 打开网页 是php代码 里边post接受两个参数 分别是cf和field 既然是文件包含那就要有文件能去被包含

使用dirsearch对网页进行扫描 发现.listing网页 于是进行访问 里边有提示index.php和you_can_seeeeeeee_me.php 在进行访问后者 发现是phpinfo 只是文件名改了一下

在进行文件包含 首先尝试cf的post传值 cf=../../../../../var/www/html/you_can_seeeeeeee_me.php 发现能包含phpinfo网页 然后就没有思路了......

去看了一下phpinfo 试试能不能找到一些有用的信息 ctrl+g搜索session 发现了存储临时session的路径

并且

  session.upload_progress.enabled = on
  session.upload_progress.cleanup = on
  session.upload_progress.prefix = "upload_progress_"
  session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"
  session.upload_progress.freq = "1%"
  session.upload_progress.min_freq = "1"
  <session.use_strict_mode=off>

于是决定尝试session.upload_progress文件包含 我们可以利用session.upload_progress将恶意语句写入session文件 从而包含session文件 前提是要知道session文件的存放位置 但是我们目前已经找到了路径


因为session.use_strict_mode默认值为0 此时用户是可以自己定义Session ID的 我们可以在bp里抓包 在请求头中加入 Cookie: PHPSESSID=flag 这样我们生成的临时session文件的名字就叫做sess_flag 此时session文件里就是我们的恶意代码 我们在利用文件包含漏洞去包含该文件(被包含的文件都会被当作php文件来执行)
但是因为session文件是临时的 会被清除 那么我们就要用到竞争来不断的去上传带有恶意代码的session文件 再用bp不停的去包含这个session文件 一旦服务器来不及删除 恶意代码就会被执行 我们就能得到想要的结果
下一步就是构造恶意代码了 再phpinfo里ctrl+g搜索disable_function 发现许多函数都被禁用掉了如system 这样我们就没法探测 仔细一看 发现scandir这个函数没有被禁 可以探测目录和文件 构造php代码
<?php var_dump(scandir("/etc")); ?>

 

再不断地去包含 最后探测到flag文件 再更改php代码为 <?php var_dump(file_get_contents("flag文件")); ?> 来读取flag

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于国赛 Web 文件包含的主要内容,如果未能解决你的问题,请参考以下文章

七伤拳:Web安全之文件包含漏洞专题—第六天

web安全原理-文件包含漏洞

笔记网易微专业-Web安全工程师-04.WEB安全实战-5.文件包含

CTFshow刷题日记-WEB-黑盒测试(web380-395)文件包含日志包含getshellSQL注入

Web安全技术 实验报告四 文件包含与上传

ctfshow web入门-文件包含