攻防世界新手模式例题(Web)

news2025/2/26 9:34:53

PHP2

首先我们查看页面,查看前端代码

发现均没有什么有效信息,由题目可知,此问题与php相关,于是我们可以看一下他的index.php文件

查看时用?index.phps

补充知识:phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。

得到了php源码,判断此处应该是代码审计问题。

这一段代码表明,经过url解码后的id不能等于admin,否则将会直接退出

而这一段代码表名,经过一次urldecode解码后的内容要等于admin

于是我们可以将admin经过两次url加密,这样便可以绕过第一次比较,经过第二次解码后得到flag

补充知识:urlencode()与urldecode()函数

urlencode():原理就是首先把中文字符转换为十六进制,然后在每个字符前面加上一个标识符%,一般用在url链接地址编码

urldecode():与上述函数原理相反用于解码已编码的URL字符串,其原理就是把十六进制字符串转化为字符

浏览器在接受url时,会首先进行一次urldecode的解码

easyupload

显然是一个文件上传问题,我们开始用应对白名单的绕过

首先上传.user.ini的文件(因为是上传头像,所以必定只能放过image类型的文件)

我们在此处直接上两个绕过,一个是通过抓包改变content-type

另一个是在文件内容前加上GIF89a,绕过对文件内容的检测

一句话木马同样采用上述绕过方式

最后通过中国蚁剑连接,得到flag文件

easyphp

首先我们通过页面判断,此题为一个代码审计问题

通过这段代码我们可以得知要想得到flag,要使key1,key2同时非零

然后我们在上边找给key赋值的操作

补充知识:isset()函数用于检查一个变量是否已经设置并且非null,返回true或false。

intval()函数用于将一个变量转换为整数类型。

如果参数是一个整数或者一个字符串表示的整数(比如"123"),则直接返回这个整数值。

如果参数是一个浮点数,则返回它的整数部分(即向下取整)。

如果参数是一个字符串,但不是一个有效的整数表示(比如"abc"),则返回0。

如果参数是一个布尔值,true会被转换为1,false会被转换为0。

如果参数是一个数组或者对象,则返回0。

如果参数是null,则返回0。

也就是说我们要同时满足a有值,a转变为整数类型后值要大于6000000,并且a的字符串长度要小于等于3

显然第二三个条件是相反的,此处但我们可以通过科学计数法写。比如9e9(此处考察在低版本php中科学计数法的长度是按字符串来算的),则我们便绕过了第一个限制

补充知识:

在PHP中,substr()函数用于返回字符串的一部分。它的语法如下:

substr(string $string, int $start, ?int $length = null): string

其中:

$string 是要处理的字符串;

$start 是要截取的起始位置,如果是负数,表示从字符串末尾开始计算;

$length 是可选的参数,表示要截取的长度。如果未指定,则截取从起始位置到字符串末尾的所有字符。

在PHP中,字符串从末尾算起第一个字符的索引是-1。

所以我们要使b经过md编码后的倒数六个字符依次为8b184b

此时我们要通过脚本暴力破解

补充知识:

m = hashlib.md5(): 创建一个 MD5 哈希对象 m,但此时还没有对任何数据进行哈希计算。

m.update(str.encode('utf-8')): 将输入的字符串 str 转换为字节编码(UTF-8 编码),然后更新哈希对象 m,将这个字节编码添加到哈希对象的内部缓冲区中。

return m.hexdigest(): 计算哈希对象 m 中所有输入的哈希值,并以十六进制字符串的形式返回结果。这里的hexdigest()方法会返回一个32位的十六进制字符串,表示MD5哈希值。

跑出来的结果是53724,于是我们绕过了第二个条件判断

此时我们已经使key1的的值为真

补充知识:

jason_decode(): 用于将 JSON 格式的字符串转换为 PHP 变量。它接受一个 JSON 格式的字符串作为参数,然后返回对应的 PHP 变量。如果转换失败,会返回 null

is_array(): 用于判断一个变量是否是数组。如果变量是数组,则返回 true,否则返回 false

is_numeric(): 用于判断一个变量是否是数字或数字字符串。如果变量是数字或数字字符串,则返回 true,否则返回 false

count(): 用于统计数组中的元素个数,或者统计对象中的属性个数。它接受一个数组或对象作为参数,返回其元素个数。

die(): 用于输出一条消息并终止脚本的执行。通常用于在程序中发现错误或异常情况时,输出错误信息并停止程序的执行。

第一个绕过,首先满足c是一个数组,并且键m对应的值不是数字,同时还要大于2022,可以写成2022c进行绕过

补充知识:php的弱类型比较,php的数字与字符串比较的时候会自动进行解析其会将字符串从第一个非数字处截断,将截断前的字符串当作数字进行比较。

第二个绕过,满足键n对应的是一个含有两个元素的数组,且第一个元素也是数组

"n":[ [] ,0]

补充知识:php中数组的形式大概是(“键名”=>"值")这样的形式,此处写作{ },是因为它进行了json形式解码

最终payload:

fileclude

首先判断是白盒的代码审计

关键是这个include函数

所以首先要这样构建?file1=php://filter/read=convert.base64-encode/resource=flag.php

让flag.php文件以base64编码的形式显示到屏幕上

第二个便是需要绕过,file2=php://input这里采用简单的写入,利用bp抓包

使file_get_contents()返回的值为“hello ctf”

最后得到base64编码的flag

解密得到flag

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

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

相关文章

【超图】白模数据如何与抽屉效果结合,展示白膜内部结构

作者:taco 最近在支持的过程中,客户在看别的项目中,发现白模是可以抽插的。而非单独一个白色模型建筑。那么如何使用SuperMap产品来实现抽插的效果呢?本篇文章结合SuperMap iDesktopX产品以及SuperMap iClient for Cesium产品进行…

工业级5g路由器使用案例(5g智慧安防解决方案)

​项目背景: 现代化智慧安防需要满足远程可视化监控、设备联网管理、数据加密传输等多重需求,对通信网络的带宽、时延、安全性等提出了很高要求。业内急需一款高可靠、高性能、易管理的通信网关设备,来确保安防系统的顺利运行。 安装部署: SR800-D路由器采用紧凑型全金属机箱…

【Linux进阶之路】HTTPS = HTTP + S

文章目录 一、概念铺垫1.Session ID2.明文与密文3.公钥与私钥4.HTTPS结构 二、加密方式1. 对称加密2.非对称加密3.CA证书 总结尾序 一、概念铺垫 1.Session ID Session ID,即会话ID,用于标识客户端与服务端的唯一特定会话的标识符。会话,即客…

后端系统开发之——接口参数校验

今天难得双更,大家点个关注捧个场 原文地址:后端系统开发之——接口参数校验 - Pleasure的博客 下面是正文内容: 前言 在上一篇文章中提到了接口的开发,虽然是完成了,但还是缺少一些细节——传入参数的校验。 即用户…

TCP - 传输控制协议

TCP - 传输控制协议 是一种面向连接的可靠传输协议。 特点: TCP是面向连接(虚连接)的传输层协议。 每一条TCP连接有且只能有两个端点。 可靠、有序、无丢弃和不重复。 TCP协议提供全双工通讯。 发送缓存 存放发送方TCP准备发送的数据。T…

一键截取万像:视频快照工具的终极指南

在这个视频时代,我们不可能手动截取每一个视频的特定帧作为缩略图或参考用途。这不仅费时费力,而且效率低下。但是,有了Python和强大的库,您可以创建一个自动化工具,在几秒钟内从视频文件中获取缩略图快照。 在本文中,我将分享一个Python脚本,它使用wxPython和OpenCV库,让您只…

基于有限状态机开发健壮的Nodejs/TCP客户端

有限状态机是一种数学计算模型,它描述了在任何给定时间只能处于一种状态的系统的行为。形式上,有限状态机有五个部分: 初始状态值 (initial state)有限的一组状态 (states)有限的一组事件 (events)由事件驱动的一组状态转移关系 (transition…

Foxmail邮箱空间不够或邮件数太多

Foxmail邮箱空间不够或邮件数太多 解决办法: ①远程管理,删除远程邮件 ②删除本地邮件并同步服务器 ①远程管理,删除远程邮件 ②删除本地邮件并同步服务器 打开设置》》高级 此外,为了方便管理邮件可以设置过滤器 欢迎各位大佬…

51单片机LED8*8点阵显示坤坤跳舞打篮球画面

我们作为一名合格的 ikun,专业的小黑子,这个重要的知识必须学会。 先看效果: 51LED点阵_鸡你太美 这里我们首先要用到延时函数Delay: void Delay(unsigned int xms) {unsigned char i, j;while(xms--){ i 2;j 239;do{while (-…

物联网和工业物联网的区别——青创智通

工业物联网解决方案-工业IOT-青创智通 物联网(IoT)和工业物联网(IIoT)作为现代科技的重要分支,正在逐渐渗透到我们的日常生活和工业生产中。它们的应用范围广泛,涵盖了从智能家居到自动化工厂的多个领域。…

CTF题型 Http2降级走私原理分析例题分享

CTF题型 Http2降级走私原理分析&例题分享 文章目录 CTF题型 Http2降级走私原理分析&例题分享HTTP/2请求走私的产生回顾一下Http请求走私原理Http2请求的消息划分实际生产环境的限制如何利用H2.CL 实验环境准备例题分析H2.CL请求走私[GeekChanllenge 2023 Ez_Smuggling]…

http协议的历史与基本概念

文章目录 历史和发展起源:HTTP/0.9(1991年):HTTP/1.0(1996年,RFC 1945):HTTP/1.1(1997年,RFC 2068;1999年更新为RFC 2616)&#xff1a…

【动态规划】【 数位dp】2827. 范围中美丽整数的数目

本文涉及知识点 数位dp 动态规划汇总 LeetCode2827. 范围中美丽整数的数目 给你正整数 low ,high 和 k 。 如果一个数满足以下两个条件,那么它是 美丽的 : 偶数数位的数目与奇数数位的数目相同。 这个整数可以被 k 整除。 请你返回范围 [l…

写作之路:寻找动力与认可的探索

✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向) 🐳博客主页: 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN 🔔如果文章对您些帮助请👉关…

Android14音频进阶:AudioFlinger究竟如何混音?(六十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

R语言中的常用基础绘图函数 直方图,箱线图,条形图,散点图

目录 R语言中的绘图参数 绘图函数 1.plot函数绘制散点图 2.hist函数绘制直方图 如何修饰直方图? 如何在直方图上标注各组频数? 使用text函数把某些信息标注在直方图上 如何在直方图上添加概率密度曲线? 3.boxplot函数绘制箱线图 4.barplot函数…

实现安卓连接阿里云物联网平台(2)

完整工程链接 链接:https://pan.baidu.com/s/1ykcJHPBSKBXVMaMWKoVRvA?pwd8888 提取码:8888 (1)创建一个新工程 (2)添加mqtt包的依赖 implementation org.eclipse.paho:org.eclipse.paho.client.mqttv…

C语言技能数(知识点汇总)

C语言技能数(知识点汇总) C 语言概述特点不足之处 标准编程机制 数据类型变量数据类型字符类型整数类型符号位二进制的原码、反码和补码 浮点类型布尔类型 常量字面常量const 修饰的常变量#define定义的标识符常量枚举常量 sizeofsizeof(结构体)不要对 v…

代码随想录训练营Day26:● 93.复原IP地址 ● 78.子集 ● 90.子集II

93.复原IP地址 题目链接 https://leetcode.cn/problems/restore-ip-addresses/description/ 题目描述 思路 class Solution {List<String> list new ArrayList<>();public List<String> restoreIpAddresses(String s) {if(s.length()>12) return list…

并联谐振回路

并联谐振回路概述 串联谐振回路适用于低内阻电源(理想电压源)。而对于大内阻电源&#xff0c;则适合采用并联谐振回路。 并联谐振回路&#xff1a;指电感线圈L、电容器C和外加信号源相互并联的振荡回路。同样&#xff0c;由于电容器C的损耗很小&#xff0c;可以认为损耗电阻集…