burp靶场
1.服务端主题
1.API测试
https://portswigger.net/web-security/api-testing#top
1.1 api探测api路径,数据格式,交互方法,参数是否必选:
## 使用Burp Scanner来爬取 API
https://portswigger.net/burp/vulnerability-scanner
GET /api/books HTTP/1.1
Host: example.com
联想:/api/books/mystery## 插件:查找js中的api:
https://portswigger.net/bappstore/0e61c786db0c4ac787a08c4516d52ccf
## 重点注意:
API 处理的输入数据,包括必选参数和可选参数。
API 接受的请求类型,包括支持的 HTTP 方法和媒体格式。
速率限制和身份验证机制## 查找公开的api文档说明:它以 JSON 或 XML 等结构化格式编写
## OpenAPI 规范可以从文件或 URL 中解析。该扩展还可以使用目标 ->
## 站点地图上下文菜单中的发送到OpenAPI 解析器选项直接从 URL 获取 OpenAPI 规范
## 插件:OpenAPI Parser
https://portswigger.net/bappstore/6bf7574b632847faaaa4eb5e42f1757c## 使用burp Scanner来爬取API:
/api
/swagger/index.html
/openapi.json
寻找基本路径:
/api/swagger/v1
/api/swagger
/api##
GET /api/tasks- 检索任务列表。
POST /api/tasks- 创建一个新任务。
DELETE /api/tasks/1- 删除任务。## 识别数据包类型
## 插件:尝试转换数据类型:使用插件修改
https://portswigger.net/bappstore/db57ecbe2cb7446292a94aa6181c9278
触发泄露有用信息的错误。
绕过有缺陷的防御。
利用处理逻辑的差异。例如,API 在处理 JSON 数据时可能是安全的,但在处理 XML 时容易受到注入攻击。## fuzz的参数需要结合系统业务来进行收集整理:
PUT /api/user/update
/update的列表来模糊路径的位置 。 deleteadd
1.2 寻找隐藏的参数:
## 挖掘参数:
插件:Param Miner
https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943## 目录发现:
https://portswigger.net/burp/documentation/desktop/tools/engagement-tools/content-discovery
实操实验1:发现api
https://portswigger.net/web-security/api-testing/lab-exploiting-api-endpoint-using-documentation
Lab: Exploiting an API endpoint using documentation
要求:
要解决该实验室问题,请找到公开的 API 文档并删除carlos. 您可以使用以下凭据登录您自己的帐户:wiener:peter。
靶场测试前先登陆账户:
burp官网账户密码:
2105709486@qq.com
.p$'|7WD6[Qb8^7%zTc&k3Y/R!y=JD.+
https://0a6c000d04452323804fbde700e50064.web-security-academy.net/
使用以下凭据登录您自己的帐户:wiener:peter
Your username is: wienerYour email is: wiener@normal-user.net
登陆站点后,浏览功能点,点击功能,到处浏览,查看功能:my account站点,填写测试数据,burp 代理查看流量历史:
发现可疑数据包:
将数据包发送到repeapter:
## 尝试修改请求方法:PATCH GET POST...
## 尝试测试path的payload:
/api/user/wiener
/api/user/
/api/
/api
payload发现泄露的api信息:
测试泄露的api:
使用泄露的api进行用户删除操作,造成危害:
DELETE /api/user/carlos
实验2:找到未使用的接口:
Lab: Finding and exploiting an unused API endpoint
实验要求:
要解决该实验室问题,请利用隐藏的 API 端点购买Lightweight l33t Leather Jacket。您可以使用以下凭据登录您自己的帐户: wiener:peter
站点逐个点击功能,burp查看流量包:
点击对应商品:将GET /api/products/1/price查询商品数据流量包发送到repeater:
请求包添加请求头:Content-Type: application/json
根据上面的测试,请求需要提供json数据格式:
提供参数:将价格修改为1或者0,发现修改成功:
修改价格为0,将商品添加到购物车,支付,发现实现了0元购:
实验3:利用批量分配漏洞
实验室:利用批量分配漏洞
Lab: Exploiting a mass assignment vulnerability
通过前端web api接口给后端的实例对象的属性赋值,从而修改了对象属性:
登陆站点:wiener:peter,选择商品——》添加到购物车——》产生订单——》支付——》发现信用额度不够
burp查看数据包,GET与POST的数据包,将两个包发送到repeater,对比参数:发现隐藏的请求参数:
“chosen_discount”:{“percentage”:0}
再次刷新购物车订单,发现支付费用为0:
实验4:服务端参数污染
实验室:利用查询字符串中的服务器端参数污染
Lab: Exploiting server-side parameter pollution in a query string
目的:重置administrator,administrator登陆并删除用户carlos
浏览站点,使用忘记密码功能进行密码重置,输入administrator,使用burp 代理历史查看数据包,查看到忘记密码的数据包,查看739,740,741三个与忘记密码操作相关的数据包:
对username参数进行测试:尝试参数值:administrator,adminstratorx(一个大概率不存在的参数),查看响应包:
Invalid username,这说明了administrator用户名存在,administratorx用户名不存在,可以用来枚举,但是这里的目的不是枚举用户名。
构造其他参数进行测试,测试服务是否接受其他参数,如添加【&需要使用url编码】:&x=y,username=administrator%26x=y
从响应结果看出服务大概率是接受多个参数,但是参数x是错误不支持的。
测试:username=administrator#【#号使用url编码】,username=administrator%23
使用#截断参数测试,发现了参数:Fileld
测试:&field=x#【&与#需要url编码】,username=administrator%26field=x%23
这个payload指定一个fileld参数的值
接下来,对field参数的值进行爆破:
在“入侵者”>“有效负载”中,单击“从列表添加”。选择内置的服务器端变量名负载列表,然后开始攻击。
查看结果。请注意,带有用户名和电子邮件负载的请求都会返回响应200
爆破成功:得到一个email参数
在忘记密码的js中发现了,重置密码的url:/forgot-password?reset_token=${resetToken}
后续操作:
在“代理”>“HTTP 历史记录”中,查看/static/js/forgotPassword.jsJavaScript 文件。注意密码重置端点,它引用了 reset_token参数:
/forgot-password?reset_token=${resetToken}在Repeater选项卡中,将参数值field从 更改email为reset_token:username=administrator%26field=reset_token%23发送请求。请注意,这会返回一个密码重置令牌,记下重置令牌:6ws18f561lomm78lgqn51skk22qaakjm在 Burp 的浏览器中,在地址栏中输入密码重置端点。添加您的密码重置令牌作为参数的值 reset_token。例如:/forgot-password?reset_token=123456789设置新密码。使用您的密码以用户身份登录administrator。转到管理面板并删除carlos以解决实验。
/forgot-password?reset_token=6ws18f561lomm78lgqn51skk22qaakjm
浏览器打开重置密码的url:url中附加管理员administrator的参数,重置密码为123test:
与owasp对标:
https://portswigger.net/web-security/api-testing/top-10-api-vulnerabilities
https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/
参考:
https://mp.weixin.qq.com/s/9-2C7vPHPHcTXBJWH9_tlg
https://blog.csdn.net/m0_50841600/article/details/135456276