API测试

admin 2024年4月22日00:34:18评论13 views字数 3389阅读11分17秒阅读模式
点击蓝字,关注我们

Portswigger Labs — Portswigger Labs — Api-testing-... - FreeBuf网络安全行业门户

https://www.freebuf.com/articles/web/387931.html  --参考文

API testing | PortSwigger靶场_finding and exploiting an unused api endpoint-CSDN博客

https://blog.csdn.net/m0_50841600/article/details/135456276  --参考文章

burp靶场-API testing_exploiting server-side parameter pollution in a qu-CSDN博客

https://blog.csdn.net/qq_33168924/article/details/135582256  --参考文章

1、Exploiting an API endpoint using documentation

HTTP协议 9 种请求方式用途及区别(详解)-- GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT_请求方法options post-CSDN博客

https://blog.csdn.net/demo_yo/article/details/123596028  --参考文章

  若要解决实验问题,请查找公开的 API 文档并删除 carlos。您可以使用以下凭据登录自己的帐户:

wiener:peter。

所需知识

若要解决此实验,需要了解:

  1、什么是 API 文档。

  2、API 文档如何对攻击者有用。

  3、如何发现 API 文档。

  登陆修改邮箱发现历史数据包存在api接口 接口中存在delete请求方法的功能 用于删除用户 输入carlos删除成功

  注:以下三个接口通常为api文档

  /api

  /swagger/index.html

  /openapi.json

API测试

API测试

2、Exploiting server-side parameter pollution in a query string

  若要解决实验室问题,请以administrator身份登录并删除 carlos。

  所需知识

  若要解决此实验,需要了解:

    1、如何使用 URL 查询语法尝试更改服务器端请求。

    2、如何使用错误消息来了解服务器端 API 如何处理用户输入。

    发现忘记密码的功能点 拼接参数发现不支持参数提示                                  csrf=ubCBdKYEa2Pv4Trp64zUVroqHqjA1Hhq&username=administrator%26(&)x=y

API测试

csrf=ubCBdKYEa2Pv4Trp64zUVroqHqjA1Hhq&username=administrator%23(#) --显示field参数未被声明

API测试

csrf=ubCBdKYEa2Pv4Trp64zUVroqHqjA1Hhq&username=administrator%26(&)field=email%23(#) --拼接参数发现返回数据

API测试

翻看重置密码的页面 加载了一个forgotPassword.js 里面有一处检测存在resetToken如果存在的就打印reset_token

API测试

csrf=ubCBdKYEa2Pv4Trp64zUVroqHqjA1Hhq&username=administrator%26field=reset_token%23 --administrator的resetToken是存在的 我们需要将他显示出来 所以拼接参数reset_token

https://0a6000ac03dd61fb841f6038002600f8.web-security-academy.net/forgot-password?reset_token=6elc300bcqzzxexpx4pcwv0suf7iuhdf --进行拼接resetToken重置密码成功

3、Finding and exploiting an unused API endpoint

  要解决实验问题,请利用隐藏的 API 端点购买一件轻量级 l33t 皮夹克。您可以使用以下凭据登录自己的帐户:wiener:peter。

  所需知识若要解决此实验,需要了解:

    1、如何使用错误消息构造有效的请求。

    2、RESTful API 如何使用 HTTP 方法。

    3、更改 HTTP 方法如何显示其他功能。

  在把夹克加入购物车的数据包当中发现接口 改变POST发包尝试

  回显 Allow: GET, PATCH 尝试PATCH请求数据

API测试

  "error":"Only 'application/json' Content-Type is supported" --显示只允许json格式 尝试json格式 发生500错误

API测试

API测试

  利用json格式探针 发现报错 price没有出现 进一步利用 修改之后发现改为0元

API测试

API测试

4、Exploiting a mass assignment vulnerability

  要解决实验室问题,请查找并利用大量分配漏洞来购买轻量级 l33t 皮夹克。您可以使用以下凭据登录自己的帐户:wiener:peter。

  所需知识

  若要解决此实验,需要了解:

    1、什么是质量分配。

    2、为什么质量分配可能会导致隐藏参数。

    3、如何识别隐藏参数。

    4、如何利用批量分配漏洞。

  夹克加入购物车后 结账时发现checkout接口 返回json格式 尝试利用POST发包

API测试

  显示没有发现键值对数组 尝试将上述数据包中的json内容传入

API测试

  探针参数 修改参数percentage为100购买成功

API测试

API测试

5、Exploiting server-side parameter pollution in a REST URL

服务器端参数污染 |网络安全学院 (portswigger.net)

https://portswigger.net/web-security/api-testing/server-side-parameter-pollution  --参考

  前置:某些系统包含无法从 Internet 直接访问的内部 API。当网站在没有充分编码的情况下将用户输入嵌入到对内部 API 的服务器端请求中时,就会发生服务器端参数污染。

  若要解决实验室问题,请以管理员身份登录并删除 carlos。

  所需知识

  若要解决此实验,需要了解:

    1、如何识别用户输入是否包含在服务器端 URL 路径或查询字符串中。

    2、如何使用路径遍历序列尝试更改服务器端请求。

    3、如何发现 API 文档。

  登录框界面发现忘记密码的功能尝试抓包 查看历史数据包forgotPassword.js forgot-password 查看该数据包

  我们先行尝试一下第二关卡的payload

API测试

  返回 --> 路由无效。请参考 API 定义

API测试

  我们尝试进行目录遍历 当访问../../../../%23时 服务器返回的信息表示404错误 说明已经遍历到了api的根目录

API测试

  尝试一些常见api定义文件名 查看报错信息接口信息

  /api/internal/v1/users/{username}/field/{field}

API测试

  username=../../../../api/internal/v1/users/administrator/field/email%23 --拼接接口信息 返回正常

API测试

  翻看forgotPassword.js文件 发现代码段 与第二关卡类似 如果存在resetToken就打印出来 那只需要拼接url(passwordResetToken)即可得到

API测试

{

"type": "passwordResetToken",

"result": "2wshlu417kaiuudmikbrrowv5skqkxpq" --得到token

}

https://0a7600fd031c32ef81fd25a100610075.web-security-academy.net/forgot-password?passwordResetToken=2wshlu417kaiuudmikbrrowv5skqkxpq --拼接访问即可

API测试

            API测试

扫码关注我们
 微信号:hanlu_security
 QQ交流群:553897268

原文始发于微信公众号(寒鹭网络安全团队):API测试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月22日00:34:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   API测试http://cn-sec.com/archives/2677816.html

发表评论

匿名网友 填写信息