【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 ---------------------------------- ...
随机推荐
- Civil War
Civil War 编辑 <Civil War>是美国硬摇滚乐队枪炮与玫瑰的一首单曲,首次收录于1990年的群星慈善专辑<Nobody's Child: Romanian Angel ...
- 华为18.9.5校招笔试题AK
26进制加法(一) 'a'-'z'代表十进制的0-25,求26进制加法.例如 'z'+'bc'= 'cb' 博主思路: 首先将长度不同的字符串高位补'a' 从低位开始将字符转换为10进制相加 计算进位 ...
- .NET Core 控制台项目中的Nuget打包类库及引用
由于使用的是MAC版本的VSCode,所以全部是通过dotnet命令来完成的. 1.dotnet new lib 创建类库项目: 2.编辑项目根目录下的.csproj文件,添加版本号(建议): < ...
- eclipse导入maven工程missing artifact(实际是存在的)错误解决
找到出错的jar包文件位置,删掉_maven.repositories文件(或用文本编辑器打开,将“>main=”改为“>=”,即删除main,当然main也可能是其他值),然后updat ...
- 基于easyui开发Web版Activiti流程定制器详解(二)——文件列表
上一篇我们介绍了目录结构,这篇给大家整理一个文件列表以及详细说明,方便大家查找文件. 由于设计器文件主要保存在wf/designer和js/designer目录下,所以主要针对这两个目录进行详细说明. ...
- R语言常用语法和用法
数据准备 height <- c(6.00, 5.92, 5.58, 5.92) 1 计算均值 mean(height) [1] 5.855 2 计算中位数 median(height) [1] ...
- linq to sql 分页技术
昨天在用LINQ写分页的时候碰到一个很奇怪的问题:翻页的时候,有的数据会莫名其妙地消失,查了半个多小时才发现问题所在,其实是一个很细节的地方. 数据表如下: LINQ分页的实现是: var artic ...
- java中抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰
1.abstract与static what abstract:用来声明抽象方法,抽象方法没有方法体,不能被直接调用,必须在子类overriding后才能使用. static:用来声明静态方法,静态方 ...
- JDBC通过配置文件(properites)读取数据库配置信息
扫盲: Classloader 类加载器,用来加载 Java 类到 Java 虚拟机中.与普通程序不同的是.Java程序(class文件)并不是本地的可执行程序.当运行Java程序时,首先运行JVM( ...
- java的静态方法多态和匿名对象
静态方法: 看如下代码 父类: public class FU { public static void show(){ System.out.println("this is fu!&qu ...