FastJson与原生反序列化
FastJson与原生反序列化前言这其实是我很早前遇到的一个秋招面试题,问题大概是如果你遇到一个较高版本的FastJson有什么办法能绕过AutoType么?我一开始回答的是找黑名单外的类,后面面试官说想考察的是FastJson在原生反序列化当中的利用。因为比较有趣加上最近在网上也看到类似的东西,今天也就顺便在肝毕设之余来谈谈这个问题。
利用与限制Fastjson1版本小于等于1.2.48
Fastjson2目前通杀(目前最新版本2.0.26)
寻找既然是与原生反序列化相关,那我们去fastjson包里去看看哪些类继承了Serializable接口即可,最后找完只有两个类,JSONArray与JSONObject,这里我们就挑第一个来讲(实际上这两个在原生反序列化当中利用方式是相同的)
首先我们可以在IDEA中可以看到,虽然JSONArray有implement这个Serializable接口但是它本身没有实现readObject方法的重载,并且继承的JSON类同样没有readObject方法,那么只有一个思路了,通过其他类的readObject做中转来触发JSONArray或者JSO ...
2023BiosCTF-VulnDrive2(很实战推荐)
2023BiosCTF-VulnDrive2吐槽比赛的时候后面完整利用已经串起来了,脑抽卡在了SSRF利用上,还是太死脑筋了
Docker备份:https://github.com/Y4tacker/CTFBackup/blob/main/2023/BiosCTF/vulndrive2.zip
正文环境首先简单看看docker-compose.yml,发现php环境在外网
根据networks配置可知waf与其他两个环境互通,frontend与app不互通
审计以下为了方便叙述思路,将调整讲解的顺序,其中会涉及到部分穿插
waf这个容器中运行了一个go程序
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package mainimport ( "fmt" "log" "net/http" "net/http/httputil& ...
2023IdekCTFWriteup
2023 IdekCTF Writeup由于对xss不是很懂所以一般都是做的非xss部分,很高兴最终被强大的队友带飞下拿到第二名
环境环境可以在我的仓库下,备份了Dockerfile,可以本地搭建自己学习
https://github.com/Y4tacker/CTFBackup/tree/main/2023/IdekCTF
Task Manager一个python写的好看的TODO LIST
那么我们具体来看看如何实现,这里重点看,通过json传入task与status两个参数,不同参数条件进入不同分支,通过tasks对象实现了基本的功能
12345678910111213141516171819202122@app.route("/api/manage_tasks", methods=["POST"])def manage_tasks(): task, status = request.json.get('task'), request.json.get('status') try: ...
2023RealWorldCTF-由于有很多day就不公开了
3875a73fa8e4580fbc359407ee55bcf6a63908237e63cbc8c1fbc66be766f5673be64868a2a40278b08e1aa262b65f8da93dada42a15620da02e2432e9354d3cacc4b1e4ace1d59cc7f83b9fd0bea7864e9d7dbdcf9bc111839c9eb46360119481c3a3d6b3b68b59bd2e414081b26b7710cf8aa078e19b088a94d8971f8ddba96a06b91d70e69bc755cf547a1c2e6748597b3fbfd2bb762ac61fddc5ee8a30de718f2daaa2183d3eb0d623ef9b2a8e714a9933f10fb1bb52eff61f67805f05254c331d83968894a574a3b543598797f4743821846003ecb655c865ee4e9a0b0f234d7e3b502ecafbf8ff0f9990d367aea27600236699e7f7f ...
TetCTF2023&Liferay(CVE-2019-16891)(Pre-Auth RCE)
TetCTF2023&Liferay(CVE-2019-16891)(Pre-Auth RCE)这周末打了这个比赛挺不错的一个,但是主要还是写一下这题,其他题虽然也有难度但是并不值得我记录
正文首先这题被拆分为了两个部分,觉得两部分都挺有意思的,就单独讲讲
part1主要是利用node与python的requests的差异性绕过host限制
part2主要是仅仅通过一个GET触发Liferay的RCE
关于题目备份也是放在了我的Git里:https://github.com/Y4tacker/CTFBackup/tree/main/2023/TetCTF
Part1首先一眼看到这个路由
1app.post('/api/getImage', isAdmin, validate, async (req, res, next) => {
这里面有个鉴权操作,要求密码是Th!sIsS3xreT0但是长度不能大于12,很常规基础的考点了,通过数组就行?password[]=Th!sIsS3xreT0
12345678910const isAdmin ...
浅谈JspWebshell之编码
浅谈JspWebshell之编码写在前面 最近@phithon在知识星球中分享了一个多重编码的webshell姿势后,先膜一下大佬
出于对代码实现的好奇简单看了看tomcat的具体实现以及尝试是否能够更深入的目的也便有了本篇,当然后面也发现这种方式不太灵活是有一定编码限制的,后面也会提到,当然最终经过我的努力,发现了其他三种实现双重编码的方式,甚至最后发现可以实现三重编码
那么下面就进入正文吧
环境相关及其他说明 本篇以tomcat8.0.50为例进行分析,后文简称为tomcat,同时讨论的是第一次访问并编译jsp的过程(有小区别不重要)并且不涉及到其他小版本差异
正文这里没有那么多废话,我们知道其实jsp是Servlet技术的扩展,它本身也是一种模板,通过对这个模板内容的解析,根据一定规则拼接到一个java文件后最终会编译为一个class文件并加载,在这个过程当中就涉及的很多解析的过程,这里由于主题限制,我们不必太过关心,我们重点偏向于去了解它的编码是如何被识别的即可.
对于这部分处理逻辑其实是由org.apache.jasper.compiler.ParserCo ...
读研的意义?
读研的意义?写在前面 每个人都有各自不同的处境,在每个阶段也会有自己不同的看法,我写这篇随笔也不是想去争论什么,只是觉得该记录一个状态,只是觉得我人生的一部分意义在于不断思考,而这部分思考我想留在未来某一天,闲暇饭余时间再翻开看看,也见证我个人的些许成长.
正文 一切的源头还是来自于吃完泡面无意间看到的校友发的一篇灵魂发问帖子(顺便吐槽下可恶的坏蛋室友,两个人合伙吃泡面香我,馋啊…又白锻炼了)
对我而言,我以为很多时候我们选择读研就像当初为什么我们去选择高考一样,一是迫于社会环境,二是我们还很年轻,习惯于被别人安排好道路对家长老师的话只能言听计从,但很多时候我们身为学生确实也身不由己,只能走一步看一步,我们没有退路也没有多余的选择.
而对于我们不同的时间点也会有不同的想法
高中时期我在想什么呢?“班主任告诉我们大学很重要决定一生,读了研更是人上人!”
大一时期我在想什么呢?“我成绩这么好,不读研太浪费机会了”
大二时期经历一些事后,“读研似乎并不是我所要的,放弃吧,忘掉之前的成绩吧”
可虽说放弃,后面经历一些挫折之后也时不时想要回头,因为当时还是离不开周围对我的影响, ...
浅析Apache Commons Text(CVE-2022-42889)
浅析Apache Commons Text(CVE-2022-42889)前段时间我在知识星球上布置了一个小作业,算是赶在一个新的CVE发布之前做了个简单预警了
之后呢可以预见,Apache官方确实在几天后发布了一次更新,内容是https://lists.apache.org/thread/n2bd4vdsgkqh2tm14l1wyc3jyol7s1om,版本更新以及CVE的内容
其实总体而言这个的挖掘难度不算高,和前一段时间刚出的Apache Commons Configuration的RCE长的也基本一致,原理也不必多说
根据官方的demo呢,咋们也可以很容易看出它的基本用法以及漏洞出发点
简单的从org.apache.commons.text.lookup.DefaultStringLookup也可以看出,它支持一个script的用法
它对应于一个叫org.apache.commons.text.lookup.ScriptStringLookup的类,从它的lookup方法当中我们也可以看到,这就是我们平时RCE所常用到的执行JS实现RCE
因此POC也相对简单
1$ ...
浅析Apache Commons Jxpath命令执行分析(CVE-2022-41852)
浅析Apache Commons Jxpath命令执行分析(CVE-2022-41852)本文首发于跳跳糖:https://tttang.com/archive/1771/
影响版本commons-jxpath:commons-jxpath <= 1.3
一直到最新版本,官方也不打算修了
利用探索测试环境:jxpath1.3
JXPath支持标准的XPath函数,开箱即用。它还支持 “标准 “扩展函数,这些函数基本上是通往Java的桥梁,以及完全自定义的扩展函数。
简单从漏洞描述可以看出由于解析xpath表达式的问题造成的漏洞
其实这来源官方的一个feature,如图看起来它赋予了我们一种动态执行代码的能力
这时候我们就会想为什么会有这种奇怪的需求,毕竟从平时经验来讲xpath,作为一种路径语言,它的功能是帮助我们对xml进行一些简单的信息检索,然而它叫JXpath而不叫Xpath,因此其实从实现上来讲它不仅实现了xpath查询的一些基础功能,更重要的是它搭建了一个通往java的桥梁,从官方的设计初衷也可以看出,它的设计实现其实更像一款表达式语言
Primary applic ...
保研or就业---阿里云实习之旅
保研or就业 — 阿里云实习之旅始章 昨天刚回成都,之前一直在问自己结果真的有那么重要吗,现在我也能鼓起勇气对自己说,不重要了,我的世界属于我,我的人生也没有那么多的观众,我也没必要在意他人的目光,我终于又成长了一点。
实习经历 (经历这部分就挑着重点的或者和时间性有关的说说,我也懒)
七月中旬收拾好行李独自前往一个陌生的城市,起初对杭州的影响也就是赛博群里说的饭不好吃,说我这个成都人一定不习惯(Ps:不过外卖还是很不错的),到了杭州浅浅收视了下房间,便被徐师叫出去干饭了,主管确实是一个很好也很热情的人,在吃饭过程中帮助我开始熟悉环境,也在这个过程中有了对工作的简单认知(Ps:至少知道了咋是做Waf产品和RASP产品).
第一天刚上班的时候,懵懵懂懂不知道干什么,索性在公司发的新电脑上边配置环境边研究着来之前没搞完的安全研究。到了第二天,主管拉我去开会帮助我确定了我实习期间的内容,总体而言还是很好的,给了我很多自由发展的空间。有着公司提供的各种资源,第一个月也是我技术成长最快的时候;一方面我很喜欢研究新的东西,另一方面我还是和以前一样的无所顾忌。当然 ...