SCTF2021
团队在SCTF中喜获两枚flag
web
loginme
下载源码发现是go语言的web框架题
其实对go一点不熟,之前也没有学过,很难受,那就现场学习一下吧
首先需要本地登录
但是源码要求x-forwarded-for和x-client-ip均为空
搜gin模块ClientIP()的使用方法发现默认方法有[X-Forwarded-For, X-Real-Ip]
那直接构造请求包参数X-Real-Ip:127.0.0.1成功登录
分析route.go源码中Login方法逻辑保证传入id参数为0,可以取到admin的信息
1 | func Login(c *gin.Context) { |
这里存在一个模板渲染函数,渲染参数为age支持用户自定义输入
1 |
|
百度一下go模板渲染方式,其实跟python的ssti很像,于是构造age={{.}}
直接取出flag
最终payload:?id=0&age={{.}}
MISC
This_is_A_tree
下载附件发现是二叉树
整理得到
左子树
右子树
按根节点-左节点-右节点的顺序遍历,并在又子树yEhO处分割,得到两断base64加密密文
Q2hpbmVzZSB0cmFkaXRpb25hbCBjdWx0dXJlIGlzIGJyb2FkIGFuZCBwcm9mb3VuZCEgU28gSSBXYW50IEdpdmUgWW91IE15IEZsYWcgQnV0IFlvdSBOZWVkIERlY29kZSBJdC5FbmpveSBUaGUgRmxhZyEh
OuW4iCDlhZEg5aSNIOaNnyDlt70g6ZyHIOaZiyDlp6Qg5aSn6L+HIOiuvCDlmazll5Eg6ZyHIOaBkiDoioIg6LGrIA==
解密得到:Chinese traditional culture is broad and profound! So I Want Give You My Flag But You Need Decode It.Enjoy The Flag!!:师 兑 复 损 巽 震 晋 姤 大过 讼 噬嗑 震 恒 节 豫
按伏羲六十四卦解密
exp
1 | s='师兑复损巽震晋姤大过讼噬嗑震恒节豫' |
得到flag
Ch1nA_yyds!