buuctf_随便注

题目:
在这里插入图片描述
这玩意,就SQL注入呗
好习惯,看眼前端代码,也没啥
那万能钥匙试试呗,下面我尝试了:

a or 1=1 #
a' or 1=1 #
a" or 1=1 #

上述三种类型,唯有a' or 1=1 #出现了回显,如下图:
在这里插入图片描述
然后1,2,3order by浅试一下,试出数据表的属性列为2列
之后尝试:

1’ union select 1,2#

在这里插入图片描述
嗯嗯,select ,update等等显示被过滤掉了。
这题的新姿势是(大佬说)是通过;注入多条SQL语句,那我们下面来尝试一下;
要payload其实是;

1'; show databases; #

但我开始在想传入SQL语句的结构,为什么前面是1’呢(加个;后面这个语句不结束了嘛),然后想明白了,比如说
select id from student where id=‘???’;
我放1进去,就是:select id from student where id=‘1’;<正常>
我放1;进去,就是:select id from student where id=‘1;’;<表明查id是’1;‘的,那肯定不行呐>
我放1’;进去,就是:select id from student where id=‘1’;‘;<表明查id是1,后面紧接着;,这句就结束了,后面自带的’;等就不管了,因为后面自带的和;会形成一个新的无意义的SQL语句>(这都我自己想的哈,但还有个存疑,这个新SQL语句不会报错嘛)
总之,payload完,结果:
在这里插入图片描述
(细心的读者发现,我这靶场url变了哈哈,因为中间没一次性写完,但不影响学习和操作)
1'; show databases; #他的意思,是前面注销了SQL原有的一些语句,后面我们注入了show databases;的语句,使靶场的数据库全部显现出来,#是注释掉他原本自带后面的其他SQL语句
所以我们从结果中可以看到:
在这里插入图片描述
好,执行下一步,他查询select xx from xxtablexx where xxxx–
那咱看看他用的是哪个数据库,我们看这数据库里的表;
payload:

0’; show tables; #

在这里插入图片描述
俩表,那咱看看他某个表里的属性(这里from,我们就选择words):
payload:

1’; show columns from words; #

在这里插入图片描述
好像没什么东西欸,那咱看看另一个表呗:
payload:

0'; show columns from `1919810931114514 `; #

兄弟们不好意思哈,这个注入语句我没试出来
下面这个ok的:
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; alter table words change flag data varchar(100);#

注意1919810931114514这个表要反引号括起来,我在CSDN的mark编辑他就当某种标识了,原语句下面有截图:
在这里插入图片描述
结果:
在这里插入图片描述
我这最后对上面最后的payload记录解释:
1';#不解释了

  1. rename table words to word1;
    这句话的意思是将名为 “words” 的表重命名为 “word1”。通过执行此命令,表名将从 “words” 更改为 “word1”。

  2. rename table ‘1919810931114514‘ to words;
    这句话是将名为 “1919810931114514” 的表重命名为 “words”。通过执行此命令,表名将从 “1919810931114514” 更改为 “words”。

  3. alter table words add id int unsigned not Null auto_increment primary key;
    这句话的意思是在 “words” 表中添加一个名为 “id” 的列。该列的数据类型是无符号整数(int unsigned),不能为空(not null),并且是一个自增长的主键(auto_increment primary key)。

  4. alter table words change flag data varchar(100);
    这句话的意思是修改 “words” 表中名为 “flag” 的列的属性。将列的数据类型从原来的类型更改为 varchar(100),即字符串类型,最大长度为100个字符。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值