Sky's blog

Sky's blog

热爱Web的蒟蒻一叶飘零/Flappypig

2019 神盾杯 final Writeup(2)
前言接之前的分析文章,本篇文章将2019 神盾杯线下赛后续两道web题也解析一下。 web3预置后门扫描打开源码发现是主流cms typecho,先上工具扫一波:同时注意到版本号:根据github的开源项目回滚到当前版本:并进行diff: 用户名RCE容易发现/admin/login.php处,$rememberName被反引号包裹,可以进行RCE。 SSRF漏洞/var/Widget/XmlRpc.php:该漏洞应该为typecho对应版本的原生漏洞,可以搜到相关信息:那么关键点就在于过滤时,未把file协议过滤掉:/var/Typecho/Http/Client/Adapter.ph...
2019 神盾杯 final Writeup(1)
前言队友去参加了2019神盾杯上海市网络安全竞赛,线下有4道web题,就跟队友要来了源码进行了一波分析,由于题目较多,分为2篇撰写,本篇先写dedecms和另一个出题人手写的cms。 web1预置简单后门查杀打开源码发现是dedecms,使用主流webshell查杀工具得到如下结果:由于静态分析具有较高的误报率,所以我先选择了diff一下:发现后门文件为include/guess.class.php,事实证明还是D盾nb~ 内置混淆后门我们先去查看文件:include/guess.class.php发现明显后门:123456789101112131415161718<?php$p=...
2019 强网杯final Web Writeup
前言强网杯线下赛打的非常happy也非常累,感觉这种赛制非常有意思,早就厌倦了web的AD,这种cms的0/1day的挖掘非常带劲,就是和0ctf连着打,感觉命都没了(线下赛共有3道web,分别是1道框架0/1day,2道cms前台getshell的0/1day,但是Laravel框架由于可以搜到相关CVE,于是本篇文章不再编写,只分析另外2个cms。 yxtcmf信息搜集拿到这道题时,我先去搜集了相关信息,可以发现该cms是一个以thinkphp+bootstrap为框架进行开。可以理解为在thinkcmf上进行的二次开发。同时了解到是thinkphp3.2.3:1const THIN...
2019 0ctf final Web Writeup(1)
前言鸽了好久的Blog,因为自己事务缠身,一直没时间写一下最近比赛的题解,趁近日有空,来填坑~第一次参加0ctf新星赛就拿了冠军,还是非常开心的。比赛过程中,web共4道题,我有幸做出3道,java实在不太擅长,哭了(,另一道是ocaml的题目,涉及小trick和逻辑问题,准备放在后面和java一起编写(希望不要咕咕咕了)。这里写出另外两道题目的题解如下: 114514_calcalcalc本题是2019 RCTF calcalcalc的改版,这次限制了之前的时间延迟注入的问题,同时需要Bypass validator:我们可以使用__proto__来进行Bypass:至于时间注入的问题...
2019 强网杯online Web Writeup
upload登入题目,首先纵览题目功能,发现有注册和登录:随便注册登入后,来到文件上传页面:经探测,发现可以上传png图片,同时上传目录可直接访问:同时发现cookie有序列化内容:解码后得到:1a:5:{s:2:"ID";i:23;s:8:"username";s:13:"fuck@fuck.com";s:5:"email";s:13:"fuck@fuck.com";s:8:"password";s:32:"abf753db781ecf27d7b5...
2019 RCTF Web Writeup
前言本坑开的好久了= =,但一直太忙了,现在已经是7月了,都想不起来还有啥题了,只把坑先填上了~ nextphp拿到题目123456<?phpif (isset($_GET['a'])) { eval($_GET['a']);} else { show_source(__FILE__);} 列目录查看一下1http://nextphp.2019.rctf.rois.io/?a=var_dump(scandir(%27.%27)); 得到1array(4) { [0]=> string(1) &quo...
Summary of serialization attacks & Part 2
前言之前写了一篇介绍序列化概念和两种常见攻击:1.魔法方法,2.session序列化引擎。本篇文章继续深入,介绍另外方法:原生类序列化问题。 原生类同名函数问题引入什么是原生类同名函数攻击漏洞呢?我们不妨看如下代码:12345678910class UploadFile { function upload($fakename, $content) { ..... // 你什么也不能做 } function open($fakename, $realname) { ..... // 你什么也不能做 ...
Summary of serialization attacks & Part 1
前言近期因为内部培训有序列化的需求,于是趁此机会由浅入深的剖析一下序列化相关内容。之前也写过由浅入深的xml漏洞系列,欢迎阅读:12https://skysec.top/2018/08/17/浅析xml及其安全问题/https://skysec.top/2018/08/18/浅析xml之xinclude-xslt/ 序列化的概念简单概括来说,序列化即保存对象在内存中的状态,也可以说是实例化变量。在传递一个对象的时候,或是需要把对象保存在文件/数据库中时,就必须用序列化。 序列化样例以php官方手册样例为例:123456789101112<?phpclass SimpleClass&...
2019西湖论剑AD攻防Web题解
前言上周参加了西湖论剑线下赛,在AD攻防赛中喜迎冠军,以下是AD攻防赛中2道web的题解。 Web1 - typecho整体源码如下因为是typecho CMS,所以肯定有已知CVE,由于之前审计过,这就不重新分析了,只分析人为加入的。 漏洞1 - 反序列化CVE1https://skysec.top/2017/12/29/cms%E5%B0%8F%E7%99%BD%E5%AE%A1%E8%AE%A1-typecho%E5%8F%8D%E5%BA%8F%E5%88%97%E6%BC%8F%E6%B4%9E/ 可参加我以前分析的这篇文章,构造如下序列化,进行RCE1234567891011...
从PHP底层看open_basedir bypass
前言有国外的大佬近日公开了一个php open_basedir bypass的poc,正好最近在看php底层,于是打算分析一下。 poc测试首先测试一下:我们用如上源码进行测试,首先设置open_basedir目录为/tmp目录,再尝试用ini_set设置open_basedir则无效果,我们对根目录进行列目录,发现无效,返回bool(false)。我们再尝试一下该国外大佬的poc发现可以成功列举根目录,bypass open_basedir。那么为什么一系列操作后,就可以重设open_basedir了呢?我们一步一步从头探索。 ini_set覆盖问题探索为什么连续使用ini_set不会...
avatar
一叶飘零
苟有恒,何必三更眠五更起。