【10.13】Bug Bounty Write-up 总结
今天惯例邮箱收到了Twitter的邮件提醒有新的post,这种邮件每天都能收到几封,正好看到一个Bug Bounty的write up,比较感兴趣,看起来也在我的理解范围之内,这里对这篇write up和另一篇一起做一个总结,希望能对自己对于web security的学习和bug bounty的路程有所帮助。
write-up 地址
Add description to Instagram Posts on behalf of other users - 6500$
Making an XSS triggered by CSP bypass on Twitter
Instagram的漏洞
一开始作者Sarmad Hassan (Juba Baghdad)本来想在facebook的页面绕开instagram的验证策略,但是在之后浏览Instgram的官网过程中,发现了Instgram显示的一个新功能IGTV,您可以通过这个功能发布一个竖屏视频,也可以浏览其他人发布的IGTV视频。
在测试这个新功能时,作者发现视频发布后,点击编辑选项并通过butpsuite拦截发出的请求
POST /media/1887820989027383407/edit/ caption=test&publish_mode=igtv&title=test
以上请求中,路径中的1887820989027383407是一个media ID,而作者发现这个ID存在于在Instrgram发布的所有照片、普通视频和IGTV视频中,而你可以在这些照片或视频中添加可选的Description,IGTV的描述就对用于请求中的caption选项。
所以如果把media ID换成其他人发布的内容的ID呢?
首先是怎样找到media ID,作者发现有两种方式
- 查看发出内容的网页源码
- 点击发出内容的like按钮,并拦截请求
之后的过程就很顺利了,只要其他人发布的内容中并没有添加描述,就可以通过这种方式进行修改。虽然修改media ID之后发出的请求返回了一个带有错误信息的响应,但是对应的其他人发布内容的description已经被改变了。
从这一个漏洞中我可以学到
- 经常浏览关注网站的网页,查看是否有新的功能出现,这种新功能往往会存在漏洞
- 在存在交互,有上传内容的地方,多拦截请求,查看请求中是否有值得注意的地方
我觉得对于我自己来说,拦截请求这一块是很容易想到的,但更多可能会注意到其中的参数,而不是网址中的那个media ID,而且之后还要由此联想到去修改其他人发布的内容。
Twitter的XSS漏洞
这个漏洞发现者tbmnull一开始就是在挖掘Twitter的子域名,然后找到了这样一个可能存在xss的网址
https://careers.twitter.com/en/jobs-search.html?location=1" onmouseover=”alert(1)&q=1&start=70&team=
但是由于存在CSP,阻止了js代码的执行,弹窗无法弹出,所以关键在于怎样绕过CSP。
作者花费了很多功夫找到了一个网址
https://analytics.twitter.com/tpm?tpm_cb=
请求该网址,响应的Content-Type是application/javascript,而且参数tpm_cb会直接反射到页面上。
所以作者把这两个发现结合到一起,
https://careers.twitter.com/en/jobs-search.html?location=1"><script src=//analytics.twitter.com/tpm?tpm_cb=alert(document.domain)>//
由于两个网址同源,绕过了CSP对js脚本的限制,最终成功弹窗。
这个漏洞的挖掘思路我个人觉得更符合一般漏洞挖掘的步骤,很多时间和精力+一点点运气,虽然作者在write-up中并没有多提,但是很显然这两个网址的发现是很不容易的。
- 从子域名开始的漏洞挖掘方法,是否可以写一个爬虫,对网站的子域名进行总结,以及对各种url进行分析,分离出参数
- 提交的请求中,网页中原本无法编辑(只能通过列表选择)的位置,也可以通过拦截请求进行修改
- XSS为什么没有发挥作用?是否可以绕过?
- 怎样绕过CSP——同源是关键
- 漏洞的挖掘需要很耐心和仔细,不要着急
以上,是我今天看的两篇write-up,感觉学习web security还是要多看这种实例,才能对各种漏洞有更清晰的认识和理解,之后希望每天都有时间看一两篇write-up,加油!
【10.13】Bug Bounty Write-up 总结的更多相关文章
- 【10.14】Bug Bounty Write-up总结
我很喜欢今天的看到的write-up,因为作者是针对他对一个网站整体进行漏洞挖掘的过程写的,内容包括几个不同的漏洞,从中能够学习到怎样系统性的挖掘漏洞. write-up地址:[Bug bounty ...
- Bug Bounty Reference
https://github.com/ngalongc/bug-bounty-reference/blob/master/README.md#remote-code-execution Bug Bou ...
- 黑苹果之DELL台式机安装Mac OS X 10.13.6版本操作系统
由于本人所在的公司一般都是DELL的品牌台式机,所以以DELL台式机做小白鼠.记得在2012年的时候,在当时的那家公司为了学习自学IOS开发的Objective-C开发语言的时候,由于囊中羞涩买不起m ...
- 背水一战 Windows 10 (13) - 绘图: Stroke, Brush
[源码下载] 背水一战 Windows 10 (13) - 绘图: Stroke, Brush 作者:webabcd 介绍背水一战 Windows 10 之 绘图 Stroke - 笔划 Brush ...
- macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏问题
macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏会消失,估计不止出现在PhpStorm,一系列jetbrains的产品可能都会有这个问题,包括eclipis ...
- 关于MacOS升级10.13系统eclipse菜单灰色无法使用解决方案
最近,苹果发布了macOS High Sierra,版本为10.13,专门针对mac pro的用户来着,至于好处大家到苹果官网看便是,我就是一个升级新版本系统的受益者,同时也变成了一个受害者:打开ec ...
- 解锁 vmware esxi 6.7 并安装 mac os 10.13
1.安装 esxi 6.7 2.下载 unlocker 2.1.1.zip 3.上传 unlocker 2.1.1.zip esxi的磁盘中 4.开启esxi的ssh登录 5.使用 ssh 登录 es ...
- MacOS 10.13.6 下装xcode 流程
1.最好先安装brew https://github.com/Homebrew/brew/releases 自动安装脚本 /usr/bin/ruby -e "$(curl -fsSL htt ...
- 荣耀MagicBook黑苹果(i7)High Sierra 10.13.6
这里有大佬维护的新版本EFI,对应10.14.4:https://github.com/hjmmc/Honor-Magicbook ---------------------------------- ...
随机推荐
- Java 的字符串,String、StringBuffer、StringBuilder 有什么区别?
String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑.它是典型的 Immutable 类,被声明成为 final class,所有属性也都是 final 的.也由于 ...
- 在web.xml中配置404错误拦截
<error-page> <error-code>404</error-code> <location>/home.do</location> ...
- setnx redis
使用锁 1)setnx(lockkey, 当前时间+过期超时时间) ,如果返回1,则获取锁成功:如果返回0则没有获取到锁,转向2.2.)get(lockkey)获取值oldExpireTime ,并将 ...
- 1.6 Navigating This Book(本书导航)
1.6 Navigating This Book(本书导航) 如果之前没有接触过Python,那么你应该在第2章和第3章多花一些时间.这两章介绍了Python语言的特性和IPython shell以及 ...
- iOS 开源库系列 Aspects核心源码分析---面向切面编程之疯狂的 Aspects
Aspects的源码学习,我学到的有几下几点 Objective-C Runtime 理解OC的消息分发机制 KVO中的指针交换技术 Block 在内存中的数据结构 const 的修饰区别 block ...
- 我做的一个websocket的demo(php server)
notice: 通过命令行执行php文件 如 php -q c:\path\server.php 通过本地web服务器访问 http://127.0.0.1/websocket/index.php即 ...
- ethers.js-2-wallets and signers
Application Programming Interface (API) Wallets and Signers A Wallet manages a private/public key pa ...
- R执行报错:Error in `[<-.ts`(`*tmp*`,...only replacement of elements is allowed
原因: pred$mean是Time-Series类型,rbind函数不支持.通过as.double将其转换成double类型即可. 修改前代码: all_predata_time <- dat ...
- Python中乘法
1.numpy乘法运算中"*"或multiply(),是数组元素逐个计算,具体代码如下: import numpy as np # 2-D array: 2 x 3 two_dim ...
- selenium测试报告(含通过率统计图和失败截图)
前言: 介绍的是含饼状统计图及失败截图的测试报告文件. 原文地址:https://testerhome.com/topics/9984 此版本增加了如下功能 测试报告完全汉化,包括错误日志的中文处理 ...