java学习
java学习
开始学习java啦(悲)
java语法1.1java的运行方式Java编译器将准备好的源文件编译成了class文件,真正被执行的应该是class文件。此时将class文件放入到类加载器,放在Jvm中进行。字节码校验器来进行代码的校验,校验完成若没有了错误,此时的解释器便开始工作将我们的程序解释给操作系统从而进行解读.
1.2第一个java程序1234567public class hello { public static void main(String[] args){ System.out.print("hello\n"); System.out.println("20"); System.out.println("3.21"); }}
在这里需要建立一个java文件名为hello.java和public class 后面的hello相同
1.3数据类型
1.4数据强制转换byte,short,char-》in ...
2023 M03C4T CTF
M03C4T CTF
好哥们学校的校赛,给我放了条缝,让我有机会能打打
php-unserialize1源码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546<?phphighlight_file(__FILE__);class M03{ public $hello; public function __wakeup() { // TODO: Implement __wakeup() method. clone $this->hello; }}class C4T{ public $name; public $class; public $three; public function __construct(){ $this->class="MyClass"; $this ...
2023 NewStarCTF
NewStar CTF 2023
前几周的新生赛还是非常简单的,个人感觉写起来没啥压力,week4开始的题目逐渐开始变的。。。 把我骗进来杀,校内赛道的第五周,那更加是一个一个(一个一个什么啊恼)。
下面是一点点自己的小思路,希望各位大佬轻喷
1.week4 OtenkiBoy
真的是新生赛吗
info.js里面的getinfo函数里面有这样的查询语句
1const data = await sql.all(`SELECT wishid, date, place, contact, reason, timestamp FROM wishes WHERE timestamp >= ?`, [timestamp]).catch(e => { throw e });
可以看到查询语句还是这样,类似week3的最后一题,我们需要将查询的时间提前,这样就可以查询到较早时间写入的flag
需要修改这里的timestamp值
1timestamp = Math.max(timestamp, minTimestamp);
这里的mintimestamp为time ...
2023 柏鹭杯
2023 柏鹭杯 web
三等奖没混到,抱着队友的大腿获得了第17
Express fs以下代码存在任意文件读取
先读取环境变量,/proc/self/cmdline中发现了正在运行的node /app/main.js
读取文件之后,发现这里存在任意文件读取,同时ban 了flag
没法直接读取flag
1234567app.use((req, res, next) => { if ([req.body, req.headers, req.query].some((item) => item && JSON.stringify(item) .includes("flag"))) { return res.send("臭黑客!"); } next();});
这里同corCtf2022类似
corCtf2022一道有意思的node题 - 码农教程 (manongjc.com)
直接照着payload打就好了
123456 ...
刷题记录
刷题记录(持续更新)1.[NSSRound#13 Basic]flask?jwt?flask的伪造,主要还是flask_session_cookies_master的使用
注册账号
1AsaL1n/666
访问得到session
使用工具解码
12345flask_session_cookie_manager3.py decode -c '.eJwlzjsOwjAMANC7ZGawHcd1ehnk-CNYWzoh7g4S7wTv3e515Plo--u48tbuz2h7c8bQLsYmxFQTaaiDWWBMh6224m3mAO28Yo5VACgQnWZorglk4cku5pwusSoi3SE7CnWLQlYiimVYJFs3LcYxpmqJa1q1X-Q68_hvqH2-8QYwUQ.ZJbLpQ.mQofkly52NaaUabvgE5e7vPVSL0'b'{"_fresh":true,"_id":"c41d836a4a6242f91258c0aad1d9c07f7f479e50834bd95b ...
逃逸
逃逸
记录各种逃逸的方式
1.python沙箱逃逸介绍在python的沙箱里面,会不允许使用一些函数,包括os等类,题目又要求我们从一个受限制的python环境里面getshell或者执行一些命令
首先是一个可以fuzz 沙箱里面过滤了什么的脚本
12345678910111213141516171819202122232425262728293031323334353637all_modules_2 = [ 'BaseHTTPServer', 'imaplib', 'shelve', 'Bastion', 'anydbm', 'imghdr', 'shlex', 'CDROM', 'argparse', 'imp', 'shutil', 'CGIHTTPServer', 'array', 'importlib& ...
2023 羊城杯-web wp
2023 羊城杯-web wp
队友带飞!线下见!!!
D0n’t pl4y g4m3!!!
确实不是玩游戏捏
p0p.php存在302的跳转,跳转来到hint.zip下载附件
然后尊都假都解密
读道start.sh,看到是php -s启动
php版本7.4.21存在任意文件读取
读取p0p.php源码
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172<?phpheader("HTTP/1.1 302 found");header("Location:https://passer-by.com/pacman/");class Pro{ private $exp; private $rce2; public function __get($name) { ret ...
NSSCTF 2nd复现
NSSCTF 2nd复现
这次比赛出现了不少的问题,比如权限设置的问题。比赛的时候又脑子坏了,想的太复杂,最后导致只做出了两道web两道misc,需要深刻检讨。最近是不是状态不对
1.php签到
这题想的太复杂了,基础的签到都做不出来
源码如下
123456789101112131415161718192021<?phpfunction waf($filename){ $black_list = array("ph", "htaccess", "ini"); $ext = pathinfo($filename, PATHINFO_EXTENSION); foreach ($black_list as $value) { if (stristr($ext, $value)){ return false; } } return true;}if(isset($_FILES['file ...
python pickle反序列化
python pickle反序列化
python的反序列化相对于php反序列化比较的单一,php反序列化通过不断的变量覆盖,使得各个方法之间互相调用,从而导致了恶意方法的调用,而对于python反序列化,通过恶意的构造语句,实现了的命令执行,他更加像是一种命令的注入
1.pickle序列化 把一些复杂的数据用字符串的方法储存起来,在使用的时候取出来重新反序列化就可以。
123456789import pickleclass obj: def __init__(self,str1,str2): self.str1=str1; self.str2=str2;class1=obj("str1","str2")a=pickle.dumps(class1) print(a)#输出b'\x80\x04\x95.\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x03obj\x94\x93\x94)\x81\x94}\x94(\x8c ...
php原生类
php原生类1.php原生类php为了解决一些常见的问题,存在一些基本的类提供给我们可以去使用(SPL),这是用于解决典型问题(standard problems)的一组接口与类的集合。
列出所有的内置类
12345678910111213141516171819202122 <?php$classes = get_declared_classes();foreach ($classes as $class) { $methods = get_class_methods($class); foreach ($methods as $method) { if (in_array($method, array( '__destruct', '__toString', '__wakeup', '__call', '__callStatic ...