45_API接口漏洞

news2024/11/23 0:04:39

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/193255.html

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

相关文章

【顺序表和链表的对比】

前言&#xff1a; 我们已经学习过了顺序表和链表的一些知识&#xff0c;在实际运用中我们不能笼统的说哪种存储结构更好&#xff0c;由于它们各有优缺点&#xff0c;选择哪种存储结构&#xff0c;则应该根据具体问题作出具体的分析&#xff0c;通常从空间性能和时间性能上作比较…

Day14【元宇宙的实践构想03】—— 元宇宙的资产观(NFT、数字资产、虚拟地产、与现实世界资产关系)

&#x1f483;&#x1f3fc; 本人简介&#xff1a;男 &#x1f476;&#x1f3fc; 年龄&#xff1a;18 ✍今日内容&#xff1a;《元宇宙的实践构想》03——元宇宙的资产观 ❗❗❗从1.31日开始&#xff0c;阿亮每天会查阅一些元宇宙方面的小知识&#xff0c;和大家一起分享。一是…

cobaltstrike的shellcode免杀

基础概念 shellcode是一段用于利用软件漏洞而执行的代码&#xff0c;也可以认为是一段填充数据&#xff0c;shellcode为16进制的机器码&#xff0c;因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。 可在暂存器eip溢出后&#xff0c;塞入一段可让CPU执行的s…

vue入门到精通(七)

6、依赖注入 祖先组件向后代组件传值 6.1 provide() 提供一个值&#xff0c;可以被后代组件注入。 provide() 接受两个参数&#xff1a;第一个参数是要注入的 key&#xff0c;可以是一个字符串或者一个 symbol&#xff0c;第二个参数是要注入的值。 与注册生命周期钩子的 AP…

百趣代谢组学文献分享埃博拉病毒发病机制及组合生物标志物的发现

百趣代谢组学文献分享&#xff0c;今天我们分享的文献就是通过多组学技术研究埃博拉病毒发病机制及组合生物标志物的发现。该文献的研究思路也可以给我们开展新型冠状病毒肺炎相关研究提供借鉴。 代谢组学文献分享&#xff0c;2013-2016年西非埃博拉病毒病&#xff08;EVD&…

(面经三,技术面)——时间:2022-11-11 地点:线上

面试经历&#xff08;三&#xff09;——时间&#xff1a;2022-11-11 地点&#xff1a;线上 1.什么是抽象类 有抽象方法的类&#xff0c;用来表征对问题领域进行分析、设计中得出的抽象概念。 2.抽象类和接口的区别 继承关系&#xff1a;类只能单继承。接口可以实现多个接口 构…

智慧物业管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

【大数据】第二章:搭建Hadoop集群(送尚硅谷大数据笔记)

尚硅谷Hadoop3.x官方文档大全免费下载 搭建集群没什么好讲的&#xff0c;跟着视频和笔记出不了什么问题。 唯一遇到的问题就是安装好VmWare后打不开&#xff0c;发现是老师给的VmWare版本不适配本机的WIN11。 解决办法就是下载最新版本的VmWare。新版已经修复了与WIN11的兼容性…

计算机网络基础(三)

前言&#xff1a; 在计算机网络基础(二)中&#xff0c;我们着重学习了应用层&#xff0c;传输层的知识。在 本文&#xff0c;就要介绍网络层&#xff0c;数据链路层&#xff0c;这两块内容细节也很多。这是计算机网络基础篇的最后一文&#xff0c;系统的学习后&#xff0c;就可…

基于php、Thinkphp5的共享电动车管理系统

摘 要当前共享单车在社会上广泛使用,但单车骑行的短距离仍旧不能完全满足广大用户的需求。共享电动车管理系统可以为用户提供账户信息、押金信息、充值信息、租车信息等功能,拥有较好的用户体验.能实时动态显示车辆位置提供更加快捷方便的租车方式,解决了常见共享电动车管理较为…

英雄互娱|提升 300% !一次性能优化实战记录

案例背景 英雄互娱是国内知名游戏研发商和发行商&#xff0c;经常遇到热门线上游戏&#xff0c;在某瞬间出现大量登录请求&#xff0c;需要临时扩容资源的场景。为了让服务更好的应对突增并发请求压力&#xff0c;客户尝试通过把应用服务容器化部署&#xff0c;能通过 HPA&…

Android 屏幕刷新机制 VSync+Choreographer

1.显示系统基础知识 一个典型的显示系统一般包括CPU、GPU、Display三部分,其中CPU负责计算帧数据,并把计算好的数据交给GPU,GPU会对图形数据进行渲染,渲染好后放到图像缓冲区buffet里存起来,然后Display(屏幕或显示器)负责把buffer里的数据呈现到屏幕上。如下图: 这里…

npm发布封装的公共组件

一.新建vue项目项目目录结构如下:二.修改项目文件夹1.创建一个packages文件夹(用于存放编写的组件)2.把src修改为examples3.新建一个vue.config.js文件,并修改由于修改了src文件夹,启动vue项目后,找不到入口(main.js)会报错,所以需要重新指定启动入口module.exports {// 将 ex…

大数据实时多维OLAP分析数据库Apache Druid入门分享-下

文章目录架构核心架构外部依赖核心内容roll-up预聚合列式存储Datasource和Segments位图索引数据摄取查询集群部署部署规划前置条件MySQL配置HDFS配置Zookeeper配置启动集群导入HDFS示例架构 核心架构 Druid servers建议将它们组织为三种服务器类型:Master主服务器、Query查询服…

word高效技巧:这几个表格操作让工作更快速

说到表格&#xff0c;都说Excel制表功能更强大。但是&#xff0c;表格在Word排版中的应用同样非常广泛。比如&#xff0c;在制作简历表、求职表和登记表等一些不规则且不需要做复杂统计分析、有大量文字的表格&#xff0c;我们都会用Word文档来制作。因此&#xff0c;熟练掌握W…

ERR_CONNECTION_REFUSED 解决方法

解决对部分网站请求ERR_CONNECTION_REFUSED问题问题描述可能一&#xff1a;在项目中设置了接口的代理可能二&#xff1a;接口a所在的服务器确实是拒绝了我的ip请求可能三&#xff1a;电脑设置了对其的代理为127.0.0.1由此&#xff0c;接口不再行不通了&#xff0c;问题得到进一…

VisualStudio—Remote Debug

主要用来解决本地调试没问题发布到远端后却报错的项目。一、Windows Debug Windows本文叙述采用的VS2022。①远端&#xff08;windows服务器&#xff09;安装远程调试器远端&#xff08;windows服务器&#xff09;安装过程省略&#xff0c;详见官方参考链接中设置远程调试器。②…

LightningChart .NET 10.3.2.3 2023-01-20 Crack

GPU 加速图表控件 LightningChart .NET 和 JavaScript 解决方案旨在通过彻底的图表优化、最小的延迟和流畅的呈现来满足行业最苛刻的数据可视化要求。 最佳渲染性能 LightningChart for .NET 具有超过 1,000,000,000,000&#xff08;超过 1 万亿&#xff09;个数据点的出色渲染…

2023牛客寒假算法基础集训营5(通过A,B,C,D,H,I,K,L) I题有详解

其他题待补中…… 链接&#xff1a;2023牛客寒假算法基础集训营5 简单题 A 小沙の好客&#xff08;贪心&#xff0c;前缀和&#xff0c;二分&#xff09; 题意思路 给定nnn个商品的价值&#xff0c;qqq次询问&#xff0c;每次询问k,xk, xk,x即价值不超过xxx的商品最多可以拿…

DolphinScheduler 3.1.0 海豚集群部署配置

文章目录DolphinScheduler 3.1.0 部署过程1. JDK1.8环境准备2. 下载安装包3. 上传安装包并解压4. Dolphinscheduler用户要sudo权限&#xff0c;免密配置创建海豚用户并且给予sudo权限免密配置&#xff1a;服务器各台节点之间要互相免密5. 修改配置文件6. 修改元数据配置文件7. …