46_API接口漏洞

news2024/12/24 10:57:13

API接口漏洞

一、概念

api ===> application interface 应用接口

向特定的接口发送一个请求包
返回一个类似于json格式的字符串

二、REST型web service

可以从网上去搜索下api接口去理解,下面有个我找到的网址,给出api接口的分类
https://blog.csdn.net/t79036912/article/details/127828263

常见的api接口是REST型web service,这里稍微说下
在这里插入图片描述
利用不同的http方法实现不一样的功能
全部都是将请求包发送到一个特定的url
只是请求方式不同

下面是根据理解,使用php写出来的类似于rest接口的代码

<?php
$method = $_SERVER['REQUEST_METHOD'];
$name = 'bihuo15';
switch($method){
    case 'GET':
        echo 'now the name is '.$name;
        break;
    case 'POST':
        if(isset($_POST['name'])){
            $name = $_POST['name'];
        }
        break;
    case 'DELETE':
        unset($name);
        break;
}

三、搭建dvws靶场

dvws靶场不同于dvwa靶场,这个靶场是来测试api接口漏洞的

下载镜像

docker pull tssoffsec/dvws

在这里插入图片描述
启动镜像

docker run -d -p 80:80 -p 8080:8080 tssoffsec/dvws

在这里插入图片描述
必须修改/etc/hosts文件,将域名dvws.local设置进去,不然无法打开
在这里插入图片描述
在这里插入图片描述
然后需要点击setup,加载下数据库
在这里插入图片描述

四、使用BurpSuite抓取接口请求

因为要用burp,所以也需要修改win10环境的hosts文件,才能打开网站
在这里插入图片描述

我们先测试一下暴力破解模块,随便输入用户名aaa密码bbb,点击登录,使用burp抓取请求包

发现与正常网页的请求包不同,正常网页请求包要包含请求方式 请求路径 http版本号等
但是api接口的请求包,就是一串数据
在这里插入图片描述
这串数据像是json格式化的数据,值看起来像是base64编码后的值

所以很明显通过抓包就可以分辨出是否是api接口

我们看到上面写着WebSocket接口,这里是WebSocket API接口,它与REST接口的区别,可以参考下面文章
https://blog.csdn.net/lsx2017/article/details/105034038/
在这里插入图片描述
经过base64解码后,就是我们输入的用户名aaa
在这里插入图片描述

五、WebSocket API接口的暴力破解

上面抓取请求就测试的是暴力破解

可以看到有两个请求包构成,一个是发送到服务器端,一个是发送到客户端

这属于websocket 通信协议 全双工通信
同一时间 客户端和服务器端都可以同时发送数据

在这里插入图片描述

在burp代理的套接字历史也可以查看到
在这里插入图片描述

当我们不抓包,输入错误的账户密码的时候
页面上回显Incorrect username/password
这个信息与第二次请求包中信息一致,是从服务器端返回给客户端
在这里插入图片描述
当我们输入正确的账户admin密码admin的时候
页面上回显Welcome to your account. How are you Super Administrator?
证明登录成功
在这里插入图片描述
成功和失败的第二次请求包是不一样的,因此可以进行暴力破解
但是这里无法提交到intruder模块,无法进行暴力破解

我觉得这里可以写个python脚本,与burp联用,在调用密码字典文件,给密码字典文件里面的每一个值都进行base64编码,然后获取第二个请求包,当第二个请求包里面的值与其它测试的值不一致的时候,就是破解出的账户密码,然后打印出账号密码

或者有那种专门暴力破解api接口的工具,这里暂时没有进行暴力破解,知道如何进行就可以了

在这里插入图片描述

六、WebSocket API接口的命令执行

这个靶场的命令执行漏洞,写的需要ping一个ip地址
我们提供一个ip地址,然后抓包
在这里插入图片描述
从服务端返回给客户端的信息,成功显示ping 127.0.0.1的信息
在这里插入图片描述
放包之后,页面上也显示出来了
在这里插入图片描述
分析一下,如何进行命令执行,执行其它的命令,想要ping一个地址的话,输入的命令 ping 跟上 ip
那么我们可以这样构造,ping 127.0.0.1&&whoami

成功命令执行
在这里插入图片描述

七、WebSocket API接口的文件包含

先抓包
在这里插入图片描述
发送给服务器端的值是文件名
服务器端返回给客户端的值,就是文件的内容
在这里插入图片描述
我们修改文件名,改成/etc/shadow文件,然后发送给服务器
可以看到成功返回了shadow文件的信息,这里有时候也看权限,我们这里有信息,证明是root权限
在这里插入图片描述

八、WebSocket API接口的报错注入

也是先抓包
在这里插入图片描述
报错注入我们之前学过,常用的测试就是单双引号,我们先随便构造一个包含单双引号的参数,然后经过base64编码
在这里插入图片描述
之后进行api接口通信,看到服务端返回给客户端的信息是报错的信息

在这里插入图片描述

<pre>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 '"' and password='aaa'' at line 1</pre>

分析报错信息,去掉两边引用的单引号
看到双引号是我们写入的,所以是双引号报错

"' and password='aaa'

那么根据上述构造原sql语句

select * from xxx where username = '  aaa' and extractvalue(1,concat(0x7e,user()))-- 1     ' and password='aaa'
aaa' and extractvalue(1,concat(0x7e,user()))-- 1  

然后将参数进行base64编码
在这里插入图片描述
再次测试,成功报错

在这里插入图片描述

九、WebSocket API接口的XSS漏洞

XSS与之前学的XSS漏洞没有什么区别,只不过这个是属于WebSocket API接口,所以下面就只演示了下XSS漏洞

1. 反射型XSS

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 存储型XSS

在这里插入图片描述

十、在线网站测试WebSocket API接口的XSS漏洞

网址: https://portswigger.net/web-security

可以自己去挑战一下

有的会遇到那种ip被ban的情况,可以考虑在打开网页的时候抓个包,然后修改client-ip或者X-Forwarded-For,将ip修改为其它的任意ip,就可以绕过ip被封禁的限制了

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

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

相关文章

Linux(Ubuntu)通过NFS服务挂载群晖NAS为虚拟磁盘

1. 设置NAS&#xff0c;共享目录 1. 文件服务 设置 首先进入NAS服务&#xff0c;打开 [控制面板] &#xff0c;在控制面版包含** 文件服务 ** 功能如图所示。 2.选中要共享的文件夹后&#xff0c;点击操作栏的 【编辑】 按钮&#xff0c;如图&#xff1a; 3.进入编辑面板后&a…

盘点三个超好用的截图软件

一款好用的截图软件往往能给人们带来更高的工作效率&#xff0c;目前市面上的截图软件已经很多&#xff0c;今天就给大家盘点一些好用的截图软件。 QQ截图 QQ截图软件是QQ内置自带的一款截图&#xff0c;快捷键ctrlA 可以唤起&#xff0c;其功能也是应有尽有包括屏幕录制&#…

【JavaScript】数据劫持(代理)详解

&#x1f4bb; 【JavaScript】数据劫持(代理)详解 &#x1f3e0;专栏&#xff1a;JavaScript &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向&#xff1a;目前主攻…

3万行代码硬撸一个一键发布文章工具,简直不要太好用,从此写文章,发文章,太简单了好伐

theme: channing-cyan highlight: github-gist 本人6年前端开发老鸟- 【程序员蜗牛】&#xff0c;欢迎沟通交流 操作演示&#xff08;视频&#xff09; 视频演示 项目背景 程序员工作中&#xff0c;不免会遇到一些技术难题&#xff0c;然后通过不懈努力将问题攻克&#xf…

1x1卷积、Inception网络、

目录1.1x1卷积(1x1 convolution)又称网络中的网络(network in network)池化层只能压缩图像的宽和高&#xff0c;1x1卷积能压缩通道数量&#xff0c;减少计算成本。如上图&#xff0c;输入维度的通道数为192&#xff0c;用32个1x1x192的filters&#xff0c;就能将输出的通道数压…

【Rust】20. Rust 的高级特征

20.1 不安全 Rust 20.1.1 不安全的超能力 20.1.2 解引用裸指针 裸指针&#xff08;raw pointers&#xff09;&#xff1a;类似于引用类型&#xff1b;和引用一样&#xff0c;裸指针是不可变或可变的&#xff0c;分别写作 *const T 和 *mut T&#xff0c;这里的星号不是解引用运…

Kubernetes集群部署与实践

一、提要 部署Kubernetes集群至少需要3台服务器&#xff0c;其中至少要有1个服务器做master节点&#xff0c;至少要有1个服务器做node节点&#xff0c;且节点名称是唯一的。 当集群中只有一个master节点时&#xff0c;如果其出现了故障&#xff0c;会导致Kubernetes的控制平面…

规则引擎-drools-5-决策表

文章目录Excel格式决策表 官网地址决策表使用方式Excel组成部分与drl规则文件对应关系Excel文件内容示例drl规则文件内容Excel决策表内容说明1. RuleSet2. RuleTable3. Attributes示例Excel转化drl代码及结果执行drl代码及结果Excel格式决策表 官网地址 决策表这部分内容在官网…

几种IO模型

IO真正的IO操作涉及到和IO设备的交互&#xff0c;而操作系统限制了应用程序直接和设备交互。我们通常说的IO操作实际上是应用程序和操作系统进行交互&#xff0c;一般会使用操作系统的System Call&#xff0c;即系统调用&#xff0c;读是read()&#xff0c;写是write()&#xf…

设计模式-结构型模式

目录 5.结构型模式 5.1 代理模式 5.1.1 概述 5.1.2 结构 5.1.3 静态代理 5.1.4 JDK动态代理 5.1.5 CGLIB动态代理 5.1.6 三种代理的对比 5.1.7 优缺点 5.1.8 使用场景 5.2 适配器模式 5.2.1 概述 5.2.2 结构 5.2.3 类适配器模式 5.2.4 对象适配器模式 5.2.5 应…

聊聊关于矩阵反向传播的梯度计算

目录 1. 前向传播 2. 反向传播 3. 矩阵反向传播 4. 总结 1. 前向传播 建立如图所示的简单网络 W 是权重矩阵&#xff0c;初始赋值为 2*2 的矩阵 X 是输入特征&#xff0c;初始赋值为 2*1 的矩阵 这样通过矩阵乘法 &#xff0c; Y WX &#xff0c;应该得到一个 2*1 的输…

在这竞争激烈的时代,如何才能够在激烈竞争中脱颖而出呢

不管是在职场想要获得认可得到晋升&#xff0c;还是与客户谈合作&#xff1b;都需要你能够脱颖而出。让他人能够看到你并且认可你。那如何才能脱颖而出呢&#xff1f;首先你要先认识自己&#xff0c;知道自己有什么优势、劣势、技能、兴趣、爱好等等。明确自己有什么价值&#…

软件工程(1)--初识基础概念

前言 学习了半年的软件工程课程&#xff0c;总不能一无所获吧&#xff0c;故此写下文章总结一番。 软件工程是一门综合性交叉学科&#xff0c;它涉及计算机科学、工程科学、管理科学和数学等领域。学习目标是掌握需求分析、软件设计、编码风格、软件测试的工程化方法。 软件程序…

什么是股票量化研究?

谈到股票量化研究领域&#xff0c;肯定少不了有自动交易系统的支撑&#xff0c;像平时能将股票池中的数据挖掘出来也能熟能生巧的进行自助量化研究&#xff0c;包括数据接口系统的开发使用都是受到量化的影响&#xff0c;那么&#xff0c;如何看待股票量化研究&#xff1f;像平…

arm版(以uos为例)linux安装mysql8

官网下载&#xff1a;https://downloads.mysql.com/archives/community/上传到服务器&#xff0c;然后解压缩tar -zxvf mysql-8.0.31-linux-glibc2.17-aarch64.tar.gzmv mysql-8.0.31-linux-glibc2.17-aarch64 /usr/local/mysql-8创建MySQL数据目录mkdir -p /datacd datamkdir …

打通对账的最后一公里——对账管理平台

背景 日新月异的科技与快速变化的消费需求不断驱动零售模式的变革&#xff0c;实体商业与数字经济、传统零售与新零售&#xff0c;逐渐融合并形成了全渠道、一体化的发展趋势&#xff0c;也改变了以往企业认知中线上、线下渠道割裂的思维定式&#xff0c;零售快消类企业纷纷建…

电子技术——MOS管的物理特性

电子技术——MOS管的物理特性 增强型 MOSFET 是应用最广泛的场效应晶体管。除了最后一节&#xff0c;我们整章讨论的都是增强型 MOSFET 。我们从它的物理元件结构和物理操作入手&#xff0c;在下一节我们会在本节的基础上学习 MOSFET 的电流-电压特性。 元件结构 上图展示了n-…

Day876.redolog刷盘问题 -MySQL实战

redolog刷盘问题 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于redolog刷盘问题的内容。 平时的工作中&#xff0c;一条 SQL 语句&#xff0c;正常执行的时候特别快&#xff0c;但是有时也不知道怎么回事&#xff0c;它就会变得特别慢&#xff0c;并且这样的场景很…

RPA自动化办公07——Uibot流程加入python插件

参考&#xff1a;扩展UiBot命令_UiBot开发者指南 Uibot是非常方便&#xff0c;但是有些功能可能还需要别的语言来完成&#xff0c;例如python语言&#xff0c;作为胶水语言&#xff0c;在一个Uibot里面插入python脚本是很方便&#xff0c;好用的。 加入插件的位置 在新建一个流…

Seata分布式事务模式(TA、TCC、XA、SAGA)工作机制

前言 分布式应用痛点 分布式应用有一个比较明显的问题就是&#xff0c;一个业务流程通常需要几个服务来完成&#xff0c;业务的一致性很难保证。为了保障业务一致性&#xff0c;每一步都要在 catch 里去处理前面所有的“回滚”操作&#xff0c;可读性及维护性差&#xff0c;开…