序列化和反序列化
文章平均质量分 86
序列化和反序列化
bfengj
vegetable web dog
展开
-
JDBC反序列化漏洞学习
前言这篇稍微学习一下JDBC反序列化的漏洞原理,不同的版本有些许的区别,但主要就是两种利用方式,主要还是了解其中的原理,后面的POC编写那块看的有点懵,没看太懂,就只能直接用着大师傅们的脚本了。ServerStatusDiffInterceptor利用ServerStatusDiffInterceptor我本地复现用的是: <dependency> <groupId>mysql</groupId> &l原创 2021-10-26 15:25:26 · 1314 阅读 · 0 评论 -
2021长城杯线下 Web-Work 复现
前言最近可以说是有许许多多的事情,各种奇奇怪怪的事情,还有一些别的事情。从7月末开始,一直到10月初,有的事情,也已经,彻底结束了叭。也是时候回到以前的生活,慢慢学习了。长城杯也是一段时间之前的比赛了,当时颜总把源码发我,我没有怎么看题,现在慢慢学习,也把这几个月的时间里错过的东西都慢慢补回来。是一道Java的代码审计题目,是SpringBoot。拿源码在本地搭建出来,弄好数据库之后开始代码审计。Writeup先看一下pom.xml:<?xml version="1.0" encoding原创 2021-10-26 00:00:13 · 1019 阅读 · 0 评论 -
Thinkphp5.0.24 反序列化rce链学习
Thinkphp5.0.24 反序列化rce链学习这个链子是出现在9月份的0CTF中,一直没来得及学习,今天晚上抽出时间来看一下这个链子。之前的5.0.x版本的反序列化链是写文件getshell,需要有一个可写的目录才行,而这条新链子不需要写文件,直接可以rce。分析整个链子的前部分后后部分都是老套路了,只是中间的部分稍微改了一下。链子的前部分和老链子一模一样:https://blog.csdn.net/rfrder/article/details/114644844、在运行到thinkphp/原创 2021-10-25 20:07:20 · 1860 阅读 · 1 评论 -
[HMBCTF 2021]EzLight 复现
前言去突击了一个星期的计算方法期末考试,中间耽误了很多比赛题目的复现。今年红帽最后的那道EzLight赛后也有了writeup,直到今天才有时间去复现一下。参考了郭院士和颖奇师傅的文章:lightcms后台RCE漏洞挖掘lightcms全版本后台rce 0day分析他们的文章讲的已经非常非常的详细了,因此我这里就不做过多的解释了。就是跟着大师傅们的思路,也自己把这个代码的流程看了一遍,因此我这篇文章其实没啥看的,就是我自己记录一下我的复现过程,师傅们看郭院士和颖奇师傅的文章就可以了。复现网上直原创 2021-05-18 16:58:29 · 938 阅读 · 8 评论 -
[安洵杯 2019]不是文件上传
知识点SQL注入WP进入环境,有一个upload.php可以传文件,有一个show.php可以查看上传的列表,发现有点像是存入了数据库,再考虑到以前似乎听说过文件上传中文件名的SQL注入,就猜测这题应该其实是一个SQL注入。在filename那里尝试了一下,一开始是1.png可以,1.png'提示我必须上传图片,再考虑到show.php那里的回显,文件名是被加密的,因此猜测后端可能是把.png前面的东西单独的处理,存入了数据库,于是这样:1'.php,果然报wrong了,再试试1'or'1.php原创 2021-04-13 20:43:59 · 332 阅读 · 0 评论 -
[VNCTF 2021]realezjvav 复现
前言这次VNCTF的题目还是挺难的,web唯一一道php直接把我按着锤,只会php的我居然第一时间先去复现这道java(笑)复现跟着ha1师傅的WP走一遍,中间自己还好没有出什么太大的问题,虽然不会java,但是也拿SpringBoot写过一点点东西,对于“大名鼎鼎”的fastjson也是有所耳闻。进入环境,f12看一下源码,可以看到注释里写的:both username and password are right , then you can enter the next level。再根据h原创 2021-03-16 16:37:29 · 1184 阅读 · 3 评论 -
Thinkphp6.0 反序列化漏洞
准备创建工程:composer create-project topthink/think thinkphp6.0.1 "require": { "php": ">=7.1.0", "topthink/framework": "6.0.1", "topthink/think-orm": "^2.0" },composer updateindex控制器:<?phpnamespace app\controller;原创 2021-03-12 19:36:43 · 2118 阅读 · 0 评论 -
Thinkphp5.0 反序列化漏洞复现
前言环境创建:composer create-project topthink/think=5.0.14 thinkphp5.0.14 "require": { "php": ">=5.4.0", "topthink/framework": "5.0.14" },composer update原创 2021-03-11 19:39:04 · 2074 阅读 · 0 评论 -
[GYCTF2020]Easyphp
前言知识点:www.zip源码泄露PHP反序列化链POC代码审计WP进入环境,题目是easyphp我就感觉要审源码。。。试了一下常见的泄露,发现存在www.zip。把代码下载下来进行一下审计,发现update.php和lib.php可以利用:<?phpsession_start();function safe($parm){ $array= array('union','regexp','load','into','flag','file','insert',"'",'\原创 2021-03-08 12:10:28 · 1975 阅读 · 5 评论 -
bestphp‘s revenge
前言很有意思的一道题目,知识点虽然都是很常见的,但是结合到一起去思考,去解题就是很困难的了。这道题大致涉及了这些知识点:session反序列化PHP原生类SoapClient的SSRF。变量覆盖。CRLFWP这题其实也是有提示的,访问一下flag.php,可以提示要127.0.0.1,暗示了SSRF。再加上session,很容易想到session反序列化,利用PHP的原生类实现SSRF。首先写一下反序列化的构造:<?php$a = new SoapClient(null,原创 2021-03-06 16:35:43 · 932 阅读 · 0 评论 -
Joomla 3.4.5 反序列化漏洞复现
准备Joomla3.4.5的源码可以在下面的链接中下载到:Joomla 3.4.5源码然后phpstudy建一下复现环境即可。要求php版本<5.6.13,原因如下:在php>=5.6.13版本中修复此问题,5.6.13版本以前是第一个变量解析错误注销第一个变量,然后解析第二个变量,但是5.6.13以后如果第一个变量错误,直接销毁整个session。然后直接访问网页,创建网站,创建数据库即可,环境即搭建成功。使用vulhub同样可以:vulhub:joomla3.4.5反序列化原创 2021-03-02 17:38:02 · 748 阅读 · 0 评论 -
Thinkphp5.1 反序列化漏洞复现
前言开始tp5.1的反序列化链的复现,这个链我上学期10月份的时候尝试复现过,但是当时的自己代码审计能力,反序列化的能力也都实在太菜,不足以理解这个链。这个链相比yii2,laravel5.7,5.8的那些链,长度和难度都提高了很多,思维的跳跃也很,自己也要想办法把它啃下来。源码下载:thinkphp5源码或者去github上下载也可以。然后写个控制器:<?phpnamespace app\index\controller;class Unserialize{ pub原创 2021-02-18 15:21:34 · 4491 阅读 · 0 评论 -
laravel5.8 反序列化漏洞复现
前言上一篇文章复现了一下laravel5.7的反序列化,这篇复现一下5.8的反序列化。还是github上下载源码:laravel5.8往composer.json的require里面加上"symfony/symfony": “4.*”,然后composer update。如果提示 Allowed memory size of bytes exhausted,参考这篇文章:运行 composer update,提示 Allowed memory size of bytes exhausted然后还原创 2021-02-17 20:18:20 · 1733 阅读 · 0 评论 -
laravel5.7 反序列化漏洞复现
前言之前接触yii2,接下来就遇到laravel5.7的反序列化了,复现了一下laravel5.7的反序列化链,学习了一波。去github上下载源码:laravel5.7,下载下来的可能回没有vendor目录,需要在根目录执行composer install就可以了。...原创 2021-02-17 15:25:11 · 2084 阅读 · 3 评论 -
yii2框架 反序列化漏洞复现
前言最近学习PHP反序列化的时候遇到了yii2反序列化的利用,就顺便搭了一下环境,跟着网上各种大师傅们的文章进行了一波复现和学习,提高自己代码审计的能力。漏洞出现在yii2.0.38之前的版本中,在2.0.38进行了修复,CVE编号是CVE-2020-15148:Yii 2 (yiisoft/yii2) before version 2.0.38 is vulnerable to remote code execution if the application calls unserialize()原创 2021-02-16 15:08:08 · 3784 阅读 · 4 评论 -
CTFshow-WEB入门-反序列化
前言简单的反序列化直接给出payload,有意思的,较为复杂的和我不太会的会分析一波。web254?username=xxxxxx&password=xxxxxxweb255<?phpclass ctfShowUser{ public $username='xxxxxx'; public $password='xxxxxx'; public $isVip=true;}echo urlencode(serialize(new ctfShowUser())原创 2021-02-14 15:59:43 · 5583 阅读 · 1 评论 -
[强网杯 2019]Upload
前言又是一道反序列化的题目,而且也是thinkphp,一审起来才感觉到自己的代码审计能力就像屎一样,反序列化的链都找偏了。这个寒假不审个几万行代码我tm就去吃屎,草。WP进入环境看到那个favicon就想不会是thinkphp吧,扫了一下目录果然是thinkphp:www.tar.gz可以下载到源代码,对controller审计一下。<?phpnamespace app\web\controller;use think\Controller;class Index extends原创 2021-01-25 17:57:33 · 345 阅读 · 0 评论 -
DJBCTF2021-WEB-虎山行
前言刚结束的DJBCTF的一道web题,当时看到这么多代码太懒了没去审,其实这题并不难,自己还是太菜了,没去审的另一个原因也是自己太菜了觉得自己审不出来什么,还是需要克服困难去挑战自己啊。而且这个题目也比较有意思,关于那个phar反序列化的知识和一个大师傅讨论后也学习到了超级多的东西,对于phar反序列化的理解也是加深了许多。WP虎山行有2题,本来是1题,但是因为被minicms本身install.php这个鸡肋的RCE给非预期了,所以又出了第二题。不过拿install.php秒第一题是真的爽(笑)。原创 2021-01-25 14:31:12 · 460 阅读 · 0 评论 -
[SWPUCTF 2018]SimplePHP
知识点PHP的phar反序列化的POP链构造。WP这是一道不难的phar反序列化,我个人觉得卡着我的点就是最后要读的文件名,我写程f1ag.php读不出来,一看WP是/var/www/html/f1ag.php,才恍然大悟。首先进入环境,发现有文件读取和文件上传两个功能,而且f12提示了flag在f1ag.php里面,因此大概率就是要去读f1ag.php这个文件,但是文件读取过滤了f1ag,不能直接读,但是可以把其他文件的源码都读到,比较有用的三个文件源码如下:<?php//file.原创 2020-12-24 21:17:53 · 545 阅读 · 0 评论 -
[MRCTF2020]Ezpop
知识点PHP反序列化POP链知识点是一道简单的PHP反序列化POP链的题目:<?php//flag is in flag.php//WTF IS THIS?//Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95//And Crack It!class Modifier { prote原创 2020-11-25 22:57:31 · 221 阅读 · 0 评论 -
[BJDCTF 2nd]xss之光
知识点PHP中利用原生类的反序列化以实现XSSWP又是新姿势。进入环境进行了常规的信息收集,发现存在git泄露,下载下来:<?php$a = $_GET['yds_is_so_beautiful'];echo unserialize($a);除了这个反序列化之外,什么都没有了。自己也是一脸蒙蔽,然后卑微的去看了WP。这题其实是XSS,但是利用的是PHP的反序列化。主要知识点是php 的原生类中的Error 和Exception 中内置了toString 方法, 可能造成xss漏原创 2020-11-24 18:07:41 · 213 阅读 · 0 评论 -
[CISCN2019 华北赛区 Day1 Web1]Dropbox
知识点PHP代码审计phar和反序列化文件读取猜nt的flag文件名和它在哪WP进入环境随便注册登录,发现存在文件上传,上传之后会有下载的功能,对这个功能进行抓包,发现存在文件读取:然后就想办法把这题所有的文件都给读取下来,重要的就是download.php,delete.php和class.php://download.php<?phpsession_start();if (!isset($_SESSION['login'])) { header("Locatio原创 2020-11-21 23:42:26 · 190 阅读 · 1 评论 -
[安洵杯 2019]easy_serialize_php
知识点代码审计反序列化逃逸WP自己做了3小时终于解出来了。。这题其实不算太难,主要还是自己对于PHP反序列化逃逸接触的还是太少,审代码审了很久,payload也构造了很久才构造出来,而且payload构造的也不算简洁,不过思路都是一样的。首先进入环境,看一下源码:<?php$function = @$_GET['f'];function filter($img){ $filter_arr = array('php','flag','php5','php4','fl1g'原创 2020-11-19 20:34:29 · 506 阅读 · 0 评论 -
0CTF-2016-Web-piapiapia
知识点备份文件下载PHP代码审计数组绕过preg_match反序列化字符逃逸WP首先进入环境,查看源代码,发现了备份文件:然后下载下来,进行代码审计。审计完之后可以知道,flag是在config.php文件里,但是我们没法直接读取。唯一可以读取文件的就是profile.php里的这个:else { $profile = unserialize($profile); $phone = $profile['phone']; $email = $profile['email'];原创 2020-11-07 00:05:16 · 288 阅读 · 0 评论 -
2020-网鼎杯-青龙组-Web-AreUSerialz
前言是一道PHP反序列胡的题目,不过那个ASCII的绕过就是我们知识盲区了,还有就是路径的问题,不过我是在CTFHub上做的这个题目,不存在路径的问题。WP首先进入环境,进行代码审计:<?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler{ protected $op; protected $filename; protected $content; functio原创 2020-11-03 22:19:21 · 772 阅读 · 2 评论 -
2020-网鼎杯-朱雀组-Web-phpweb
前言我是废物。。越学越回去了,现在连怎么读源码都想不起来了,天天直接getshell,getshell的,最基本的读文件源码的函数都忘得一干二净了。WP进入环境,经过一系列的信息收集,发现了POST传入的func的函数名,p传入的是参数,尝试执行命令,以及一些其他的php函数,都失败了。然后就卡住了。。觉得这题的关键点在index.php的源码里,我尝试去找备份文件,git泄露之类的,都没有。。。自己都可以命令执行了,为什么想不起来读源码呢。。。这里读源码都两种方式,分别是:func=file_原创 2020-11-01 22:39:22 · 511 阅读 · 0 评论 -
网鼎杯2018 fakebook
知识点PHP反序列化备份文件下载SSRFSQL注入前言我就是fw…又没解出来,主要的问题还是在自己身上,当时sql注入读了username,以为就是我输入的,就没继续爆破了,没想到data居然是序列化的,还有就是SQL注入学的还不好,导致自己没能解出来。WP首先进入环境,有join和login。先用dirsearch扫一下目录,发现存在robots.txt,访问发现存在user.php.bak备份文件。下载下来:<?phpclass UserInfo{ publi原创 2020-10-28 20:53:58 · 349 阅读 · 0 评论 -
[ZJCTF 2019]NiZhuanSiWei 1
知识点文件包含与各种协议反序列化WP首先进入环境,得到源码:$text = $_GET["text"];$file = $_GET["file"];$password = $_GET["password"];if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf")){ echo "<br><h1>".file_get_contents($text,'r').原创 2020-10-23 19:41:26 · 1342 阅读 · 2 评论 -
[极客大挑战 2019]PHP 1
前言审thinkphp审吐了。。。根本看不懂代码。。。各种函数跳。。。感觉自己的头发都掉了很多。。。来打打BUUCTF的题目来放松一下。。考察的知识点备份文件反序列化代码审计和猫玩WP首先进去环境,看到因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯不愧是我!!!很明显提示存在备份文件。试了几个常见的swp、~、bak等,发现还是没出,以为是git泄露之类的。但是因为BUUCTF限制了访问,用dirsearc扫的话会429,自己控制参数来放慢扫描速率的话扫的太慢了。。。原创 2020-10-20 16:59:17 · 719 阅读 · 0 评论 -
“百度杯”CTF比赛 十月场 Hash
WP这题也是学习到了很多新的姿势,是一个不错的题目。WP进入环境,点击haha,提示:you are 123;if you are not 123,you can get the flag。再看看,发现get参数里有key=123&hash=f9109d5f83921a551cf859f853afe7bbf12查看源码,发现$hash=md5($sign.$key);the length of $sign is 8因此我们需要知道$sign是多少。我利用在线md5解密工具,上面的hash原创 2020-10-04 16:20:50 · 618 阅读 · 0 评论