728 words 1 mins.

# [SUCTF2018]annonymous 这题代码很少,就这几行 首先创建了一个匿名函数,会输出 flag 接着 openssl_random_pseudo_bytes (32) 生成一个随机数,然后将其转成了十六进制,将其赋值给 $hash 接着 SUCTF_和 hash 拼接成一个新的函数名,函数会执行上面构造的匿名函数 所以,要想获得 flag 就只有两种办法,直接执行匿名函数,或者执行 SUCTF_和 hash 拼接成的新函数 下面的 func_name 可以传一个函数名进去并执行该函数 这题最初想着直接传 $MY...
4.9k words 4 mins.

传传传,各种传 *1*|***1*** 文件上传 1.MIME 类型检测绕过 设置为 image/jpeg,无果 2. 黑名单绕过 尝试设置后缀如 php3,php5, 无果 3.%00 截断 尝试,无果。 4. 应用程序解析绕过 .php.jpg。上传成功! 发现怎么后缀是 jpg,然后通过路径访问的话报 404,这里我就开始奇怪了,难道真的不是文件上传,毕竟就算上传成功也需要爆出路径才能利用,但是这明显是假路径。 思考其他的方向,既然 buu 给了 github 源码,那就看看源码吧,看了看,主要逻辑代码在 helper.php *1*|***2***...
2.9k words 3 mins.

打开网页,是一个登录界面 注册完后,登录,便是一个上传点 一系列的绕过操作试了一遍后,发现都不行,只能上传包含恶意语句的图片 打开 BP 抓包后发现,参数 user 是一串 base64 编码的字符串 一系列解码后得到序列化内容 拎去反序列化,得到一个文件名,猜测上传文件后,将文件名重命名了一遍 这个时候,利用目录爆破工具会在网站中找到一个 www.tar.gz 这个文件,因为这个 docker 环境没有,所以这里没图。下载下来后,审计中找到了 __destruct() 魔法函数 同时,在 Index.php 中,找到了身份验证的方法 Index.php 会对传入的内容进行...
2.2k words 2 mins.

# [SUCTF2018] MultiSQL-MySQL 预处理学习 [SUCTF 2018] MultiSQL-MySQL 预处理学习 进入题目后,注册账户登录 编辑头像可以上传文件,但是上传了 php 文件还是会变成 jpg 格式 再看用户信息这里,id=2 那里可以随意更改,存在越权,1 就是 admin 这里接下来要用到 MySQL 的预处理,参考文章 set MariaDB [(none)]> set @a='select version()'; Query OK, 0 rows affected (0.00 sec) MariaDB...
3.2k words 3 mins.

# [GYCTF2020]Ez_Express # 知识点:原型链污染 原型链的特性: 在我们调用一个对象的某属性时: 1.对象(obj)中寻找这一属性2.如果找不到,则在obj.__proto__中寻找属性3.如果仍然找不到,则继续在obj.__proto__.__proto__中寻找这一属性以上机制被称为 js 的 prototype 继承链。而原型链污染就与这有关 原型链污染定义: 如果攻击者控制并修改了一个对象的原型,那么将可以影响所有和这个对象来自同一个类、父祖类的对象。这种攻击方式就是原型链污染 举例: let foo = {bar:...
5.6k words 5 mins.

# [N1CTF 2018]eating_cms 一个登陆页面,试了试 admin 和 123456,无果,没找到注册页面 尝试 register.php 页面,存在注册页面,先注册个号登录看看 利用伪协议得到源码 http://a85cdc51-62e8-4ac7-a3b6-fe8e8924fdf8.node3.buuoj.cn/user.php?page=php://filter/convert.base64-encode/resource=user源码 base64 解码后如下 <?phprequire_once("function.php");if(...
14k words 13 mins.

# [GYCTF2020]Easyphp # 前言 # 知识点: # www.zip 源码泄露 # PHP 反序列化链 POC # 代码审计 # WP: 进入环境,题目是 easyphp 我就感觉要审源码。。。试了一下常见的泄露,发现存在 www.zip。把代码下载下来进行一下审计,发现 update.php 和 lib.php 可以利用: <?php session_start(); function safe($parm){ $array=...
3k words 3 mins.

# [ISITDTU 2019]![1](../images/[ISITDTU 2019]EasyPHP/1.png)EasyPHP 思路很简单,绕过这两个 if 即可任意代码执行 先看一下第一个正则匹配 看不懂的推荐使用这个网站:https://regex101.com/ if ( preg_match('/[\x00- 0-9\'"`$&.,|[{_defgops\x7F]+/i', $_) ) die('rosé will not do it'); ![2](../images/[ISITDTU...
2.3k words 2 mins.

# [HarekazeCTF2019]Avatar Uploader 1 [HarekazeCTF2019]Avatar Uploader 1 参考文章点这 首先输入用户登录 要求上传小于 256kB 且小于 256px*256px 的 PNG 图片。 上传做头像 试着传🐎发现没用,没有任何回响 只能去看源码来了 最主要的还是...
600 words 1 mins.

# [FireshellCTF2020] Caas C 的预处理 # 进入可以看到是一个编译器 ,输入简单的 php 代码试试 <?php phpinfo();?> 不知道什么的报错,直接复制报错代码百度一下看看(仔细地可以看见最前面有一个后缀.c) 发现清一色的 C 语言报错,那我们找个 c 语言代码传进去试试 #include <stdio.h> int main() { printf("hello, world");}下载出来一个不知什么文件 思路到这里就断了,其实可以猜到 flag...