今天惯例邮箱收到了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,作者发现有两种方式

  1. 查看发出内容的网页源码
  2. 点击发出内容的like按钮,并拦截请求

之后的过程就很顺利了,只要其他人发布的内容中并没有添加描述,就可以通过这种方式进行修改。虽然修改media ID之后发出的请求返回了一个带有错误信息的响应,但是对应的其他人发布内容的description已经被改变了。

从这一个漏洞中我可以学到

  1. 经常浏览关注网站的网页,查看是否有新的功能出现,这种新功能往往会存在漏洞
  2. 在存在交互,有上传内容的地方,多拦截请求,查看请求中是否有值得注意的地方

我觉得对于我自己来说,拦截请求这一块是很容易想到的,但更多可能会注意到其中的参数,而不是网址中的那个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中并没有多提,但是很显然这两个网址的发现是很不容易的。

  1. 从子域名开始的漏洞挖掘方法,是否可以写一个爬虫,对网站的子域名进行总结,以及对各种url进行分析,分离出参数
  2. 提交的请求中,网页中原本无法编辑(只能通过列表选择)的位置,也可以通过拦截请求进行修改
  3. XSS为什么没有发挥作用?是否可以绕过?
  4. 怎样绕过CSP——同源是关键
  5. 漏洞的挖掘需要很耐心和仔细,不要着急

以上,是我今天看的两篇write-up,感觉学习web security还是要多看这种实例,才能对各种漏洞有更清晰的认识和理解,之后希望每天都有时间看一两篇write-up,加油!

【10.13】Bug Bounty Write-up 总结的更多相关文章

  1. 【10.14】Bug Bounty Write-up总结

    我很喜欢今天的看到的write-up,因为作者是针对他对一个网站整体进行漏洞挖掘的过程写的,内容包括几个不同的漏洞,从中能够学习到怎样系统性的挖掘漏洞. write-up地址:[Bug bounty ...

  2. Bug Bounty Reference

    https://github.com/ngalongc/bug-bounty-reference/blob/master/README.md#remote-code-execution Bug Bou ...

  3. 黑苹果之DELL台式机安装Mac OS X 10.13.6版本操作系统

    由于本人所在的公司一般都是DELL的品牌台式机,所以以DELL台式机做小白鼠.记得在2012年的时候,在当时的那家公司为了学习自学IOS开发的Objective-C开发语言的时候,由于囊中羞涩买不起m ...

  4. 背水一战 Windows 10 (13) - 绘图: Stroke, Brush

    [源码下载] 背水一战 Windows 10 (13) - 绘图: Stroke, Brush 作者:webabcd 介绍背水一战 Windows 10 之 绘图 Stroke - 笔划 Brush ...

  5. macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏问题

    macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏会消失,估计不止出现在PhpStorm,一系列jetbrains的产品可能都会有这个问题,包括eclipis ...

  6. 关于MacOS升级10.13系统eclipse菜单灰色无法使用解决方案

    最近,苹果发布了macOS High Sierra,版本为10.13,专门针对mac pro的用户来着,至于好处大家到苹果官网看便是,我就是一个升级新版本系统的受益者,同时也变成了一个受害者:打开ec ...

  7. 解锁 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 ...

  8. MacOS 10.13.6 下装xcode 流程

    1.最好先安装brew https://github.com/Homebrew/brew/releases 自动安装脚本 /usr/bin/ruby -e "$(curl -fsSL htt ...

  9. 荣耀MagicBook黑苹果(i7)High Sierra 10.13.6

    这里有大佬维护的新版本EFI,对应10.14.4:https://github.com/hjmmc/Honor-Magicbook ---------------------------------- ...

随机推荐

  1. 鸟哥私房菜vim常用命令

    第一部份:一般模式可用的按钮说明,光标移动.复制贴上.搜寻取代等 移动光标的方法 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 向上箭头键(↑ ...

  2. Hadoop HBase概念学习系列之HBase表的一些设置(强烈推荐好好领悟)(十三)

    压缩格式:默认压缩格式是NONE.可选值有GZ.LZO.SNAPPY. 版本数:HBase默认定义为3个版本. 以秒为单位的存活时间TTL:使用对象是行中的列簇,一旦达到过期时间,HBase会删除这些 ...

  3. python 统计学的各种检验

    1.使用python中的Numpy进行t检验 http://www.atyun.com/7476.html 2.scipy中的卡方检验 http://wiki.mbalib.com/wiki/%E5% ...

  4. October 07th 2017 Week 40th Saturday

    Knowledge is a treasure but practice is the key to it. 知识是宝藏,但实践才是打开它的钥匙. Experience often comes fro ...

  5. RTCM32编解码中的一些概念及相关文献阅读

    1. IODC和 IODE ——  导航电文相关.iode/iodc是在GPS系统的ICD2中定义的参数,iode指星历数据事件,iodc指星钟数据事件. IOD 是 issue of data ,数 ...

  6. Mina使用总结(三)MinaClient

    简单的Mina客户端代码MinaSimpleClient.java: package com.bypay.mina.client; import java.net.InetSocketAddress; ...

  7. Echarts使用小结

    还是先来简单的了解一下Echart是什么吧? ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前 ...

  8. tomcat6 集群配置

    1. 概要 web容器在做集群配置时,有3点需要注意: 1.1. 负载均衡配置: 1.2. session共享: 1.3. 若做的是单机集群(多个tomcat安装在同一台机器上),需要注意端口冲突问题 ...

  9. c++ 多态,虚函数、重载函数、模版函数

    c++三大特性:封装.继承.多态.封装使代码模块化,继承扩展已存在的代码,多态的目的是为了接口重用 虚函数实现:虚函数表:指针放到虚函数表 多态:同名函数对应到不同的实现 构造父类指针指向子类的对象 ...

  10. nginx 查看版本 查看模块

    如图,简单说 大V看模块,小v看版本. nginx -v //查看版本号 nginx -V //查看版本号和加载模块明细