[HDCTF 2023]SearchMaster
打开环境,首先的提示信息就是告诉我们,可以用post传参的方式来传入参数data
首先考虑的还是rce,但是这里发现,不管输入那种命令,它都会直接显示在中间的那一小行里面,而实际的命令却无法被执行,说明是有条件限制的rce
那么这里又考虑题目给的提示信息,模版。所以考虑ssti注入,在注入开始之前先看看后台还有什么文件。
发现有一个composer.json
文件,这个文件里面会有php项目中的配置文件信息
查看可知,使用的模板smarty,这里smarty模板是php的一个模板,一般来说呢,遇到这个模板都是用{if}来包裹,大概原因如下:
Smarty的{if}条件判断和PHP的if 非常相似,只是增加了一些特性。每个{if}必须有一个配对的{/if}. 也可以使用{else} 和 {elseif}. 全部的PHP条件表达式和函数都可以在if内使用,如*||*, or, &&, and, is_array(), 等等
这里还是先判断
出现报错,说明这个参数的内容是可以被执行的,这里因为已经判断出来模板是smarty了,所以就不再测试7*7了
直接构造
发现在当前目录下没什么有用东西,看看根目录
发现flag相关文件,查看
获得了flag的内容
如果说,在一开始无法判断模板是哪个,那就还是经典的
以这道题举例子
也可以判断出是smarty模板
[SWPUCTF 2022 新生赛]js_sign
进来就是一个输入框,发现输入内容都是一些flag的内容
因为题目给了和js有关,所以用查看器看一下
发现有一个js文件,而且那个输入框就是让输入flag的相关内容,在这个js文件里面给了提示信息,先看看这段base64的内容
这里解码出来的提示是敲击码,所以推测flag的内容应该就是以这种方式加密的,解码看看
得到了flag的内容
[FSCTF 2023]源码!启动!
f12和右键被禁用了,可以用用ctrl u 或者view-source看源码,flag就在源码里面,没什么好说的。
[CISCN 2019华北Day2]Web1
进来就是一个注入口,尝试输入1,回显了下面那句话
2也是
到3报错,到后面的4,5,6都是报错,那在这里尝试输入字母zxc
与上面不同的是这里提示的是错误是类型错误,这里基本可以猜测是字符型注入了
单引号判断
到这里基本可以确定是数字型注入了,根据题目所给的信息,尝试使用union联注查一下,flag表和flag列的信息
提示有sql信息被检测
说明这里应该是检测到了某些sql语句的字段,过滤了某些字段,这里我的思路是用fuzz测试看看过滤了什么
485长度的都是被过滤的内容,其中 union、select、extracvalue、updatexml、sleep等常见注入关键字全部都被过滤。也就是说union联注基本是不用想了,这里根据之前的报错信息尝试布尔盲注。
经过尝试,提交:if(1=2,1,2)时,返回如下
发现它这里使用if语句以后,对应2的返回值 那么这里构造语句:
if(ascii(substr((select(flag)from(flag)),