PKU GEEKGAME Writeup
PKU GEEKGAME
1.第三新XSS
首先要和内网交互,所以公网应该是少不了的,这次嫖华为云去了()
一开始我用nginx搭了个默认页面,但是解析不了php(即访问php文件就自动下载源文件),配环境难如登天,纯用JS也要appendChild什么的,再者还有还有限制,在后面细说
后来我就尝试nc监听,让网页发送GET请求,但是document.cookie一直读的是空,就算用XSS Bot执行payload也是读的空,我就有点没太搞明白,查了查资料,问了问chatgpt说是有这几种可能
1.HttpOnly=True
2.Secure Cookie
3.不同域读取?(
4.SameSite(这个是真没听过)
结合了下题干,红字是所有人共享一个网站,所以可能是SameSite???
总之在纯净nginx碰壁之后,我把纯净centOS换成宝塔了,还是懒人适合我(
外网面板地址: https://121.36.15.50:18059/c8f3f7ae
内网面板地址: https://192.168.0.249:18059/c8f3f7ae
username: ihij0ih3
password: 95c36d63
上面这个是秘密(到时候给删了,做题先留着
希望宝塔的打包环境能来点作用,最近CTF比赛有点多,我好想实践一下docker,但是老是没有时间
background knowledge:
cookie的SameSite属性
1.Strict 完全禁止第三方Cookie,跨站点时,任何情况都不会发送Cookie
2.Lax 少数情况发送第三方Cookie,详见下图
3.None 始终发送第三方Cookie
用宝塔也试了一下document.cookie,果然还是不行
我看StackOverflow上说读不到就是HttpOnly,应该不是SameSite的问题了
————————————————分割线——————————————————
唉,有点想缴械投降了,确实脑洞不够大,很多东西都是一知半解,或者说是根本不懂
javascript也没想象中那么了解,更有新的typescript,XSS也是根本一点也不懂
给我的挫败感有点强了,虽然其实我自己确实是懒,脚本不想写,总想着小聪明
唉,什么时候才能改掉这个不爱写脚本的坏习惯呢,我连怎么http发送请求都还不熟悉
唉,唉,唉
第二阶段咯,有hint了我终于不用坐牢啦哈哈哈
好玩好玩,好玩好玩,好玩好玩,好玩好玩,好玩好玩,太好玩啦哈哈哈哈哈哈
Level 1
参考MCN:
https://developer.mozilla.org/en-US/docs/web/api/document/cookie#security
参考blog:
咳咳,回归正题,XSS.py里原来设置了Cookie的path,导致不同目录不能读到Cookie,
得用iframe+contentDocument.cookie,因为iframe算是独立的一个窗口,与另一个目录通信
注意一点,得先iframe.onload=function(){ },才能读到iframe里的数据
1 |
|
1 |
|
如果没有vps的话,修改当前目录下的title应该也是可以的
Level 2
…未完待续
2.Emoji Wordle
顾名思义,就是emoji外国猜字谜,先介绍一下规则
输入n个emoji符号,会返回n个三种颜色的方块
1.若返回红色方块,说明对应位置的emoji不存在于答案中
2.若返回黄色方块,说明对应位置的emoji在答案中,但是位置错误
3.若返回绿色方块,说明对应位置的emoji在答案中,且位置正确
Level 1
简单看了下源码,改了results和localStorage,发现无果,说明没有检查这些鸟玩意
把Cookie拿去解析了下,就只有level和时间戳,改level无果,时间戳干嘛用不知道(
题目说答案是固定的,所以就直接爆破了,以下是python源码
1 |
|
如果要复现,可能得改下Cookie(真能复现嘛…)
返回的方块我用我仅可能有的一点正则表达式的知识也没截取到
但是emoji我都能截到,这到底是什么问题呢???
Level 2
非常没有含金量的一题
直接把Cookie拿去jwt解析就好了,target的值就是答案,一输,flag就有了
Level 3
…未完待续