CSP
2023-5-1 重复局面
本题的主要思想是读取n个8个字符串的组合,统计每个组合在数组中出现的次数并输出。
首先从标准输入中读取一个整数n,然后定义了一个字符串数组xq,长度为101。接着使用两个嵌套的for循环,将每次循环中读取的8个字符串s依次添加到xq数组中的第i个位置。接着定义一个整数num,用来记录当前字符串在数组中出现的次数。然后再次使用一个循环遍历之前已经存储的字符串,如果有和当前字符串相同的,则num加1。最后输出num的值,表示当前字符串在数组中出现的次数。
1 |
|
2023-3-1 田地丈量
这道题的思想是计算n个矩形区域和给定区域(a,b)的交集总面积。
首先从标准输入中读取三个整数n,a,b。然后使用一个循环读取n组四个整数x1,y1,x2,y2。这四个整数表示一个矩形区域的左下角和右上角的坐标。在每次循环中,通过比较输入的矩形区域和给定的区域(a,b)是否有交集,如果有交集,则计算两个矩形区域的交集面积并累加到sum变量中。计算交集面积的方法是通过计算两个矩形区域在x和y轴上的重合部分的长度,然后相乘得到交集面积。最后输出sum变量的值,表示所有矩形区域和给定区域(a,b)的交集总面积。
1 |
|
BuuCTF
21、easy_tornado
题目首页有三个链接,首先查看/flag.txt,可以看到flag在/fllllllllllllag中
查看/fllllllllllllag,显示Error
并且url变成了/error?msg=Error
查看/welcome.txt,内容为render
1 | render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页 ,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}进行传递变量和执行简单的表达式。 |
查看/hints.txt,这是一个加密方法,猜测 要构造filename=/fllllllllllllag&filehash=?
在查阅资料后发现Error就是注入点
本题是模板注入SSTI模板注入 - 简书 (jianshu.com)
参考资料Tornado小记 – 模板中的Handler - 黑翼天使23 - 博客园 (cnblogs.com)
获取handler.settings环境变量:/error?msg={{handler.settings}}
得到cookie_secret
'cookie_secret': 'caffff81-323f-48da-8323-dc1530a0c95d'
编写脚本
1 | import hashlib |
构造/file?filename=/fllllllllllllag&filehash=7d14388e78d85a8f1e726052e9d4dfbd
得到flag
1 | flag{5673c2e4-27f7-4962-8d87-f449b8069952} |
22、admin
注册一个账号
由于题目叫admin,所以注册时直接用admin了
显示用户名已经被注册过
注册一个账号
由于题目叫admin,所以注册时直接用admin了
显示用户名已经被注册过
猜密码
用123登陆成功了。。。
在网上看大佬解题思路
注册
登录,右侧依次查看
在change password的源代码中看到一个被注释的链接
访问这个链接,内容已被删除,所以就没再看了
1 | flag{88c07276-46ea-4e23-a50d-ce722b067e0f} |