> 文章列表 > nssctf web 入门(9)

nssctf web 入门(9)

nssctf web 入门(9)

[SWPUCTF 2021 新生赛]sql

[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

[CISCN 2019华东南]Web11

 因为页面中有X-Forwarded-For所以尝试一下添加X-Forwarded-For发现可以修改X-Forwarded-For在ctf中的应用不多这里不像是修改X-Forwarded-For修改报头的题我们尝试一下ssti

 通过{1*1}得到1发现存在SSTI

在存在模板注入的地方执行系统命令