0%

Java入门

学!

ClassLoader

Java的类都不是一启动就全部加载了的,有些类只在被需要时才被临时加载进JVM。而实现类加载的就是Java的ClassLoader,这个东西感觉在学Java的时候会无数次的被提及,以及他相应的一些知识点。

类的加载时机

阅读全文 »

红明谷&虎符CTF

周末两天两场,被暴打的两天。为什么还是这么弱呢。。。
两天上午都在摸鱼,下午的题一个都做不出来,废人

红明谷

上午摸鱼,听师傅说题目都很简单(虽然可能对我来说不简单),但是他都解决了。所以我就看了下午的这一个题

happysql

阅读全文 »

[pasecactf_2019]flask_ssti

题目本身出的很诡异,flag删了然后源码里面放了一个憨批对称加密函数,加密过的flag放进了config里面,config可以直接看(BUU题目描述上的那个加密函数是错的),过滤了单引号点号下划线
目标是读源码

题解

只过滤了单引号,双引号还能用,python单双引号好像没有什么大的区别,留了一个能用的就行
单双引号全挂了还过滤字符的话就只能用上次DASCTF的凑%c和全数字,然后一个个格式化字符串凑字母表
这里不用太麻烦,直接在双引号里面用十六进制\\x00就能绕过下划线的过滤,点号的过滤用方括号代替,一样能访问属性。
然后随便找个常用payload读文件就能打通。这次的记录主要是重新学习总结了一下SSTI相关的东西,找个机会开一篇文章

总结

阅读全文 »

[CSAWQual]Web_Unagi&[FireshellCTF]Caas

两个BUU一分题,不难但也不算太简单

Web_Unagi

题目就是个很明显的XXE,传一个XML文件上去,ban了ENTITY,SYSTEM,file之类的关键字

使用UTF16编码绕过,编码之后这种字符串匹配的waf就根本拦不住我们了,直接读文件就行

阅读全文 »

MAR DASCTF2021

平台好卡,环境时不时就访问不上了。卡到不想做题。。。感觉题目也有点莫名其妙的

baby_flask

很容易验证是SSTI,先fuzz一遍过滤的字符# "'.0123456789:[\_ config chr request pop大概测出来这些,不给用引号数字点号右括号下划线和几个函数,访问属性可以用attr()|attr()这样子绕,不过下划线这些关键字符还是得想办法搞出来,并且没了数字chr和引号也不好凑字符串了
以前看到过”%c”%num这种方法进行格式化字符串来拼字符的,现在的问题就在于引号没得数字没得,凑不出来,看到这么文章上写了这么个东西
{%set pc = g|lower|list|first|urlencode|first%} 取得%
用set定义一堆变量开始慢慢拼,g是flask一个奇怪的模块,g|lower|list|first会获得一个字符<,其URL编码为%3C,直接一波获得%c两个字符
{%set c = g|lower|list|first|urlencode|last|lower%} 取得c
{%set udl=(pc,c)|join%}
得到”%c”字符串,接下来就要想办法获取数字了,可以像上面的方法如法炮制url反复编码拿到数字,也可以用bool变量加加减减获得数字{%set one=-(False-True)%},然后一路加法获得所有数字
最后通过{%set a=udl%((nine|string, seven|string)|join|int) %}这样子获得
最后的最后凑齐字母表再一个个join起来通过attr()形式命令执行

ps

阅读全文 »