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

# [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...

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

# [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(...

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

# [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...

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

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

# [SCTF2019]Flag Shop # 点击 buy flag 试试 提示没有足够的 jkl 这里可以点击 work 去赚取 jkl 正常点击要攒到 flag 怕是不可能,buu 请求过快也会报错 先抓包看看吧 这里不能修改 work 赚取的 jkl,尝试把 cookie 解码看看:直接修改发现出错,有密码。重新开始审计: 又回到最开始的地方。。 扫描一下有没有源码泄露之类的 发现 robots.txt 访问发现有 /filebak 发现 ruby 代码: require 'sinatra' require...

# [羊城杯 2020] easyphp 和 [XNUCA2019Qualifier] EasyPHP 基本一样,唯一的区别就是少了 include_once 导致没办法通过 error_log 来做,预期解应该就是那道题的非预期。 <?php $files = scandir('./'); foreach($files as $file) { if(is_file($file)){ if ($file !== "index.php") { unlink($file); }...