SlideShare una empresa de Scribd logo
1 de 54
Descargar para leer sin conexión
Krzysztof Kotowicz, Google Security Team
Secrets of Google VRP
The bug hunter's guide to sending great bugs
Proprietary + Confidential
Introduction
Google Security Team - we handle the submissions to Google VRP
What makes us happy?
Who are we?
Google Security Team - we handle the submissions to Google VRP
What makes us happy?
Who are we?
Life of a VRP report
Bug
submission
Product team
ACK
Triage
Bugfix
Finding duplicates
Severity assessment
Panel
Remediation
Reward
Reproduction
Life of a VRP report
We handle >150 vulnerability reports every week:
● Read
● Understand (Is it in scope? What's the impact?)
● Reproduce (find the application, set up the accounts)
● Create a proof-of-concept
● File the bug and explain it to the product team
● Check if this is duplicate
● Communicate with the bughunter
per incoming report
6 min 15s
do not result in bugs
> 90%
Most popular issues
● foobar@gmail.com receives e-mails
to foo.bar@gmail.com
● XSS in translate.googleusercontent.com
Both are invalid :/
Visit the Bughunter University to check other
common non-vulnerabilities!
https://g.co/bughunteruniversity
Proprietary + Confidential
The greater picture
It varies:
● The panel evaluates the impact first and finds the worst-case scenario
● We look for the root cause, so report may turn out to be a duplicate
● We might pay more for unusually clever or severe vulnerabilities
● We might pay less for unusual user interaction required
● There's a bug chain bonus
Might be $5000 for an XSS on www.google.com or a $100 in an acquisition
How much do we pay for an XSS?
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Which bug has more impact?
Remote code executionMixed content
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Which bug has more impact?
Remote code execution
on blog.fooacquisition.co.uk
Mixed content
on accounts.google.com
Vulnerability impact
What can the attacker do having exploited the vulnerability?
● Type of the application
● Number of users affected
● Difficulty of exploitation
● Requirements for the attack
○ Victim interaction?
○ Shared computer use?
● Effect after the attack
Vulnerability impact
Look beyond the vulnerability types!
● Not every XSS, CSRF is the same
● Not every application is equally important
● Is the attack useful for the attacker or is is just annoying for the victim?
Some heuristics are tuned to a different adversary
● Botnet owner hijacking accounts vs. your sister
● Tradeoffs are unavoidable
● Mitigations might not trigger when pentesting - it works as intended
● Common examples:
○ Account recovery of test accounts
○ reCAPTCHA bypass
● If in doubt, send it and we'll investigate
● Most of the times it turns out it's not a bug
Testing on a small scale
Choose your target
Google product
● Bugs are harder to find
● Unique technology stacks
● Defense in depth
● There's a lot of products!
● Bigger payouts
○ Big impact
○ A lot of users
● Tips:
○ Don't go after the obvious
○ Look at older apps & rare features
Acquisition
● Bugs are easier to find
● Standard software stacks
○ Wordpress, Apache, PHP, Rails
● A lot of duplicate issues
● Much lower rewards
● Often does not meet the bar for credit
○ Not integrated
○ Few users
○ Non-sensitive websites
○ Soon to-be-deprecated
Spam / phishing / social engineering vectors - out of scope
● We know it's possible. We know phishing works!
● Text injection / Content spoofing
● Sending e-mails from noreply@google.com
● Open redirect to a phishing site
● RFD, Make your victim execute the downloaded file
● SPF / DKIM - we know and are working on it. Stay tuned.
In-scope or out of scope?
Local attacker (sharing OS user account) - out of scope
● It's impossible to protect!
● If the attacker uses your browser, it's game over anyway
● Cached content after logout, recovering passwords from Password Manager, cookies
working for a brief time after logout, reusing tokens from HTTPS streams, malicious files
downloaded, backdoored browser extensions...
In-scope or out of scope?
Domain names, acquisitions, vendor websites - check whois, DNS. Ask if in doubt.
Common out of scope - zagat.com, polarb.com, community.nest.com
$ whois nest.com | grep -i google
Registrant Organization: Google Inc.
Registrant Email: dns-admin@google.com
$ whois community.nest.com | grep -i google
In-scope or out of scope?
$ host connect.googleforwork.com
connect.googleforwork.com is an alias for google-partner-customer.hosted.jivesoftware.com.
google-partner-customer.hosted.jivesoftware.com has address 204.93.79.169
google-partner-customer.hosted.jivesoftware.com mail is handled by 10 mx1-in.phx1.jivehosted.com.
$ whois 204.93.79.169 | grep -i google
Proprietary + Confidential
Creating the
vulnerability report
https://goo.gl/vulnz
Faster than security@google.com
Tips for the first-timers
After the submission, we’ll talk over e-mail
Submission form
Reproduction steps
● Google launches new products or features daily.
You might know the application better than the Security Team!
● Specify the target
○ URL, application name, Android package name
○ Specify the elements to click
○ Essential for more complex issues
● If multiple users involved in the attack, please say so.
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Reproduction steps
1. Go to www.google.com and sign in.
2. Browse to https://www.google.
com/preferences?igu=2
3. Note that the server does not issue an X-Frame-
Options header when the igu=2 parameter is
present.
4. Also note that this page displays a Sign In
button, but any changes made to these settings
will affect the signed-in user's account.
I just found a big clickjacking bug on your website
google.com, your data can be fully modified
without any permissions!
If you really want to know please give a website
link, I will show you how it affects you.
Explain who can exploit the vulnerability, what is required to trigger it, and what the attacker gains
afterwards.
Attack scenario
“With this critical vulnerability I can execute code.”
“A regular user of Google Foobar may escalate privileges to become a Google Foobar group
administrator. The other Foobar group administrator needs to click the link given by the attacker.”
● We prefer text, but if it helps - go ahead
● Not a replacement for written reproduction steps
● Make it short
○ Once, we got a >1hr video. Hillarious, but not a bug :/
● Don't write in Notepad, keep the writeup separate
○ Hard to follow, slow and impossible to copy-paste
● Upload an unlisted video, share the URL
Videos and screenshots
Proprietary + Confidential
OWASP top 10
and beyond
A1 - Injection
What are you injecting? Where are you injecting it?
● Text snippet - usually not a problem
● XML - XXE attack
○ Billion laughs attack.
○ Verify - sometimes it's not a problem (hard limit for entity expansion - e.g. up to 10000)
● SQL injection
○ Google products rarely use SQL databases
○ Automated tools (sqlmap) are often wrong
○ Verify the issue manually, especially a blind SQLi
● LDAP injection
○ Highly unlikely
● Think outside the box!
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
A1 - Injection
I used a tool that detected a blind SQL injection in http:
//foobar.google.com/citations?
view_op=new_profile&hl=%Inject_Here%en
List of tables extracted from the DB:
sb_host_adminAffichage1name Affichage1name yhmm
yhmAffichage1 sb_host_adminAffichage1 ststaffFusion
Fusion8 Cold ColdFusion ColdFusion8 slserver server
bayview bayviewpath edu mac windows pc win
Affichage1Affichage1edu pierre liste Lieux "Lieu de la
manifestation" Pr�f�rencesUtilisateur "Nombre total de
membres"
If a tool found the vulnerability - verify it!
Blind SQL exploitation tools often cause false
positives.
The table list looks random - it's a dictionary
from sqlmap.
It's highly improbable there’s a “Coldfusion8”,
“Lieu de la manifestation”, and “Nombre total de
membres” columns in the table.
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
A1 - Injection
Command injection
We can include any command in the below
URL format:
https://console.cloud.google.
com/home/dashboard/project=;sudo%20id
Let’s assume the attacker sends the above
URL to the victim. Once the victim
accesses the URL and he clicks “Activate
cloud shell”, the command executes.
Found by S.Venkatesh, @pranavvenkats
● Clear reproduction steps
● Simple attack scenario
● Bash script created client-side in JS
● Requires user interaction (click)
○ we found a better vector internally
$6000
(5000 + 1000 for thinking outside the box)
A2 - Broken authentication & session management
● Token timeouts
● Token invalidation upon password change
● User enumeration attacks
○ To some extent - unavoidable
● Cookies working after logout
○ A known issue
● Account recovery
○ It's hard to test on a small scale
○ Attempts done on test accounts created from the same location
○ Often turns out to be invalid
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
A2 - Broken authentication & session management
The session cookies are not expired when
the user is logged out of his account. This
will lead to Session Misconfiguration. The
Attacker will be able to use the user
cookies/sessions to log into his account
whenever he wants.
The cookies/session must expire when the
user is logged out of his account and every
time new cookie/session will be provided
to the user logging in.
We are aware of this issue. Session cookies are
valid for a varying amount of time after the
logout.
It's not a vuln - in order to access the cookies,
the attacker needs physical access to the
targeted login session.
A3 - XSS
● Where does it fire?
○ Use alert(document.domain) instead of alert(1)
● Is the domain sandboxed?
○ See the sandbox domain list on BHU list
○ Are there interesting cookies there?
● Is user interaction required?
● Are users typing the payload themselves?
● Angular sandbox, CSP, browser XSS filters
○ they are not security boundaries
○ Assume there is a CSP and Angular sandbox bypass and no in-browser XSS filter
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
1. Go to Youtube and create an annotation with a
link on a video. Link to any Google Plus-page.
2. Capture the request, use the following payload
for the URL:
javascript://plus.google.com/?%0aalert%
28document.domain%29//
3. Save and look at the video. Then press the
annotation.
XSS on www.youtube.com
A3 - XSS
Found by Frans Rosén, @fransrosen
Full writeup
Clear reproduction steps!
Regex patterns validated server side
For plus.google.com URLs the protocol was not
validated :)
//plus.google.com?
alert(document.domain)
A4 - Insecure direct object reference
● What is the data you're getting via IDOR?
○ Is it public information?
● How long is the reference in the parameter?
○ Can you bruteforce it before the heat death of the sun?
● Is the parameter random, or sequential?
● Sometimes it’s by design
○ E.g. unguessable URLs
○ Mitigated by the parameter length and randomness
● You need to trust the user who you're sharing with
○ Whoever you're sharing the URL with, can just copy the contents
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
A4 - Insecure direct object reference
There's an IDOR vulnerability on:
https://android-review.googlesource.
com/changes/201130/detail?O=10004
If you change the O parameter value you'll receive
e-mail and names of other users - e.g.
"owner": {
"_account_id": 1084268,
"name": "Shubham Ajmera",
"email": "shubhamajmera@google.com",
}
That's a list of authors committing to an open-
source project. That information is public.
A list of those can be easily extracted off git:
$ git clone https://android.googlesource.
com/platform/libcore
$ cd libcore
$ git shortlog -sne
A5 - Security misconfiguration
● Directory listing
○ Depends on what's in the directory
● Ancient, not exploitable issues - not a vuln
○ TRACE method enabled / XST
● Information leak
○ Point out what information - credentials, debug information, cookie values (HTTPOnly bypass?)
● Various defense in depth mechanisms (CSP, HSTS, public key pinning, ...)
○ We know and are getting there (and trust us, it IS complex)
○ Lack of e.g. CSP header is usually not a vuln in itself
○ Unless we e.g. advertise it or there's an evident flaw/bypass
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
A5 - Security misconfiguration
Debug page is accessible at https:
//booboo.google.com/debug. It allows the
visitor to see the service credentials:
- login + password to the API server
- error log details
The screenshot of the page is attached
below.
Clear mention of what data is available
Easily reproductible
Screenshot to quickly determine if it's valid
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
A5 - Security misconfiguration
Directory listing is enabled at www.example.
com/wp-content/images
Screenshot with a list of jpg, gif, etc. files.
No security impact - these are just static files,
publicly accessible.
Missing viable attack scenario.
Would be valid if there are log files, database
backup files available.
● Most common issue? TLS configuration on www.google.com
○ BEAST, POODLE, CRIME, DROWN
○ Weak ciphers
● We have countermeasures. Most of the times, it's just a bad report from an automated tool
● Not every website is HTTPS yet. We're working on it.
● Referrer leaks, sensitive data on HTTP
○ Rare, but they happen
○ Mostly in acquisitions
A6 - Sensitive data exposure
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
A6 - Sensitive data exposure
www.google.com and www.youtube.com
still support SSLv3, making the website
vulnerable to POODLE SSL attack.
You announced SSLv3 and RC4
deprecation and then you still offer them!
We are aware of it. We can't simply switch
SSLv3 off support overnight.
Google has to support a wide range of clients,
like old mobile phones, so big changes like this
require careful roll-out. Meanwhile, we will never
offer SSLv3 or RC4 to a client if more secure
options are available.
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
A6 - Sensitive data exposure
www.example.com/reset_password loads
external widgets - e.g. a Facebook like button:
<script src="https://facebook.com/widget.js">
</script>
The password reset token is sent to those 3rd
party websites in a Referrer header.
A valid bug. A sensitive token value should not
be sent to external websites.
Hall Of Fame (it's an acquisition)
A7 - Missing function level access control
● Multiple roles in the application, one role allows for more than described
○ User Management Admin vs. Billing Admin vs Admin
○ Please link to the documentation where the roles are described
● When users are downgraded, their tokens are still valid
○ How long are the tokens valid for?
○ Please retry a few times
● How useful is it in an attack?
○ Changing a language
○ Re-adding yourself to the admin group
○ Accessing password recovery tokens of other users
A8 - Cross Site Request Forgery
● Make sure the action triggered is interesting from a security perspective
○ CSRF a contact support form
○ CSRF sharing a Google Doc
● Think like an attacker
● Token does not expire
○ If you can read the token, you can do so much more!
● Token does not change the value
○ If you can read the token, you can do so much more!
● CSRF logout - a known issue
A9 - Components with known vulnerabilities
● Out of date software
○ e.g. Wordpress plugins
○ Specify how did you fingerprint the version (e.g. a README file exposed)
○ Links to CVEs help
● Just disclosing a version number / server banner is not a bug
● Bugs exploitable only on old browsers
○ If the browser vendor deprecates it, there are no security patches
○ Instead of e.g. an XSS, there's probably a browser exploit available
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
A9 - Components with known vulnerabilities
Wordpress installation at http://acquisition.
example.com/ uses an outdated plugin FooBar
1.47:
http://acquisition.example.com/wp-
admin/plugins/foobar/README.txt
This plugin has an SQL injection vulnerability
described here: http://blog.researcher.com (CVE-
2015-0101) - it was patched in 1.51.
Actionable - we can confirm the version, see the
vulnerability details and understand the impact.
No need for PoC if it requires you to have an
account in Wordpress installation.
$100.00 / Hall Of Fame - depending on a site
and the vuln details.
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
A9 - Components with known vulnerabilities
An attacker can run arbitrary code at www.foo.
com.
An old Wordpress installation there is vulnerable
to SQL injection. I extracted the password hashes
and bruteforced the admin password - it's
"IDDQD".
I logged to the admin panel and uploaded a PHP
shell. Here is a zip file with other files on this
server.
Stop at confirming the SQL injection, or even
just give us the vulnerable version number and
link to vuln descriptions.
Don't exploit the vulnerabilities without prior
permissions from us!
It's a valid bug, we investigate and pay for
maximum impact.
A10 - Unvalidated Redirects and Forwards
● Open redirect to http[s]:// is not an issue
○ Caveat: OAuth
● It is useful for triggering other vulnerabilities
○ Angular ng-include
○ CSP bypass
○ Referrer check bypass
○ URL whitelists bypass
● Open redirect to javascript: or data: - report it
● Use it in an exploit chain!
○ https://www.google.com/url?sa=D&q=http://evil.com
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Found by Brett Buerhaus.
Full writeup, including an impact and attack
scenario.
Open-redirect resulting in XSS on admin.google.
com
$5000
A10 - Unvalidated Redirects and Forwards
The ServiceNotAllowed page appears when you
attempt to access a Google app service that has
not been configured for your domain. It requires
that you are logged into at least two accounts
and will give you a form to switch accounts.
When you select an account via the bullet on the
page, it executes JavaScript to redirect your
browser.
https://admin.google.com/foobar.
com/ServiceNotAllowed?
service=grandcentral&continue=javascript:alert
(document.cookie);//
OWASP top 10
● This and other lists are a great resource for classifying vulnerabilities
● They don't tell the whole story
● The impact of a given vulnerability is application-specific
● Google VRP panel evaluates the impact
To profit from the VRP:
● Understand the application(s)
● Focus on finding vulnerabilities useful in an attack
● Don't blindly scan for **insert type here*** - think!
Proprietary + Confidential
Summary
Summary
To submit great bugs:
1. Find a vulnerability - you all know how to do it :)
2. Evaluate it
a. Visit Bughunter University
b. Look beyond the vulnerability type
c. Assess the impact
3. Report the bug at goo.gl/vulnz
a. Think about a sensible attack scenario
b. Prepare clear reproduction steps
4. Profit!
Good luck on your
future bughunting!
Secrets of Google VRP by: Krzysztof Kotowicz, Google Security Team

Más contenido relacionado

La actualidad más candente

HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
Marco Balduzzi
 
Introduction To OWASP
Introduction To OWASPIntroduction To OWASP
Introduction To OWASP
Marco Morana
 
OWASP Top 10 Web Application Vulnerabilities
OWASP Top 10 Web Application VulnerabilitiesOWASP Top 10 Web Application Vulnerabilities
OWASP Top 10 Web Application Vulnerabilities
Software Guru
 

La actualidad más candente (20)

Privilege escalation from 1 to 0 Workshop
Privilege escalation from 1 to 0 Workshop Privilege escalation from 1 to 0 Workshop
Privilege escalation from 1 to 0 Workshop
 
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
 
Bug Bounty Hunter Methodology - Nullcon 2016
Bug Bounty Hunter Methodology - Nullcon 2016Bug Bounty Hunter Methodology - Nullcon 2016
Bug Bounty Hunter Methodology - Nullcon 2016
 
A8 cross site request forgery (csrf) it 6873 presentation
A8 cross site request forgery (csrf)   it 6873 presentationA8 cross site request forgery (csrf)   it 6873 presentation
A8 cross site request forgery (csrf) it 6873 presentation
 
Web Application Penetration Tests - Information Gathering Stage
Web Application Penetration Tests - Information Gathering StageWeb Application Penetration Tests - Information Gathering Stage
Web Application Penetration Tests - Information Gathering Stage
 
Deep understanding on Cross-Site Scripting and SQL Injection
Deep understanding on Cross-Site Scripting and SQL InjectionDeep understanding on Cross-Site Scripting and SQL Injection
Deep understanding on Cross-Site Scripting and SQL Injection
 
Cross site scripting
Cross site scriptingCross site scripting
Cross site scripting
 
Cross site scripting attacks and defenses
Cross site scripting attacks and defensesCross site scripting attacks and defenses
Cross site scripting attacks and defenses
 
Burp Suite Starter
Burp Suite StarterBurp Suite Starter
Burp Suite Starter
 
Attacking thru HTTP Host header
Attacking thru HTTP Host headerAttacking thru HTTP Host header
Attacking thru HTTP Host header
 
How fun of privilege escalation Red Pill2017
How fun of privilege escalation  Red Pill2017How fun of privilege escalation  Red Pill2017
How fun of privilege escalation Red Pill2017
 
Malware analysis
Malware analysisMalware analysis
Malware analysis
 
Introduction To OWASP
Introduction To OWASPIntroduction To OWASP
Introduction To OWASP
 
Reverse proxies & Inconsistency
Reverse proxies & InconsistencyReverse proxies & Inconsistency
Reverse proxies & Inconsistency
 
Cross Site Scripting ( XSS)
Cross Site Scripting ( XSS)Cross Site Scripting ( XSS)
Cross Site Scripting ( XSS)
 
A2 - broken authentication and session management(OWASP thailand chapter Apri...
A2 - broken authentication and session management(OWASP thailand chapter Apri...A2 - broken authentication and session management(OWASP thailand chapter Apri...
A2 - broken authentication and session management(OWASP thailand chapter Apri...
 
Bug bounty
Bug bountyBug bounty
Bug bounty
 
Saying Hello to Bug Bounty
Saying Hello to Bug BountySaying Hello to Bug Bounty
Saying Hello to Bug Bounty
 
Hackfest presentation.pptx
Hackfest presentation.pptxHackfest presentation.pptx
Hackfest presentation.pptx
 
OWASP Top 10 Web Application Vulnerabilities
OWASP Top 10 Web Application VulnerabilitiesOWASP Top 10 Web Application Vulnerabilities
OWASP Top 10 Web Application Vulnerabilities
 

Destacado

My pet shop
My pet shopMy pet shop
My pet shop
Jack740
 
Voicing our elasticity
Voicing our elasticity Voicing our elasticity
Voicing our elasticity
Umar Basim
 

Destacado (14)

Capital business network
Capital business networkCapital business network
Capital business network
 
More about health
More about healthMore about health
More about health
 
Change Management 13 things to consider
Change Management 13 things to considerChange Management 13 things to consider
Change Management 13 things to consider
 
Gajendra_Resume1
Gajendra_Resume1Gajendra_Resume1
Gajendra_Resume1
 
My pet shop
My pet shopMy pet shop
My pet shop
 
Matki
MatkiMatki
Matki
 
Ormiston education
Ormiston educationOrmiston education
Ormiston education
 
Brigade panorama
Brigade panoramaBrigade panorama
Brigade panorama
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Voicing our elasticity
Voicing our elasticity Voicing our elasticity
Voicing our elasticity
 
[Webinar] - 6 steps guide to select a business phone system
[Webinar] - 6 steps guide to select a business phone system[Webinar] - 6 steps guide to select a business phone system
[Webinar] - 6 steps guide to select a business phone system
 
2013 AMA Symposium Presentation: Dartmouth Site Redevelopment
2013 AMA Symposium Presentation: Dartmouth Site Redevelopment2013 AMA Symposium Presentation: Dartmouth Site Redevelopment
2013 AMA Symposium Presentation: Dartmouth Site Redevelopment
 
Iso 9001 2008~2015 changes
Iso 9001 2008~2015 changesIso 9001 2008~2015 changes
Iso 9001 2008~2015 changes
 
Academic attainment 383802 (6)
Academic attainment 383802 (6)Academic attainment 383802 (6)
Academic attainment 383802 (6)
 

Similar a Secrets of Google VRP by: Krzysztof Kotowicz, Google Security Team

Web Security: What's wrong, and how the bad guys can break your website
Web Security: What's wrong, and how the bad guys can break your websiteWeb Security: What's wrong, and how the bad guys can break your website
Web Security: What's wrong, and how the bad guys can break your website
Andrew Sorensen
 
Mr. Mohammed Aldoub - A case study of django web applications that are secur...
Mr. Mohammed Aldoub  - A case study of django web applications that are secur...Mr. Mohammed Aldoub  - A case study of django web applications that are secur...
Mr. Mohammed Aldoub - A case study of django web applications that are secur...
nooralmousa
 
OISF Aniversary: Active Defense - Helping threat actors hack themselves!
OISF Aniversary: Active Defense - Helping threat actors hack themselves!OISF Aniversary: Active Defense - Helping threat actors hack themselves!
OISF Aniversary: Active Defense - Helping threat actors hack themselves!
ThreatReel Podcast
 
BSides Cleveland: Active Defense - Helping threat actors hack themselves!
BSides Cleveland: Active Defense - Helping threat actors hack themselves!BSides Cleveland: Active Defense - Helping threat actors hack themselves!
BSides Cleveland: Active Defense - Helping threat actors hack themselves!
ThreatReel Podcast
 
002 - Account Setup _ Primer -- hide01.ir.pptx
002 - Account Setup _ Primer  --  hide01.ir.pptx002 - Account Setup _ Primer  --  hide01.ir.pptx
002 - Account Setup _ Primer -- hide01.ir.pptx
nitinscribd
 
(ISC)2 Cincinnati Tri-State Chapter: Phishing Forensics - Is it just suspicio...
(ISC)2 Cincinnati Tri-State Chapter: Phishing Forensics - Is it just suspicio...(ISC)2 Cincinnati Tri-State Chapter: Phishing Forensics - Is it just suspicio...
(ISC)2 Cincinnati Tri-State Chapter: Phishing Forensics - Is it just suspicio...
ThreatReel Podcast
 

Similar a Secrets of Google VRP by: Krzysztof Kotowicz, Google Security Team (20)

Security testing
Security testingSecurity testing
Security testing
 
BugBounty Roadmap with Mohammed Adam
BugBounty Roadmap with Mohammed AdamBugBounty Roadmap with Mohammed Adam
BugBounty Roadmap with Mohammed Adam
 
Nir goldshlager Killing a bug bounty program - twice Hack In The Box 2012
Nir goldshlager Killing a bug bounty program - twice Hack In The Box 2012Nir goldshlager Killing a bug bounty program - twice Hack In The Box 2012
Nir goldshlager Killing a bug bounty program - twice Hack In The Box 2012
 
Care and feeding of your website
Care and feeding of your websiteCare and feeding of your website
Care and feeding of your website
 
Web Security: What's wrong, and how the bad guys can break your website
Web Security: What's wrong, and how the bad guys can break your websiteWeb Security: What's wrong, and how the bad guys can break your website
Web Security: What's wrong, and how the bad guys can break your website
 
BSides Cincy: Active Defense - Helping threat actors hack themselves!
BSides Cincy: Active Defense - Helping threat actors hack themselves!BSides Cincy: Active Defense - Helping threat actors hack themselves!
BSides Cincy: Active Defense - Helping threat actors hack themselves!
 
Mr. Mohammed Aldoub - A case study of django web applications that are secur...
Mr. Mohammed Aldoub  - A case study of django web applications that are secur...Mr. Mohammed Aldoub  - A case study of django web applications that are secur...
Mr. Mohammed Aldoub - A case study of django web applications that are secur...
 
Secure at Speed @ Solent.tech
Secure at Speed @ Solent.techSecure at Speed @ Solent.tech
Secure at Speed @ Solent.tech
 
Case Study of Django: Web Frameworks that are Secure by Default
Case Study of Django: Web Frameworks that are Secure by DefaultCase Study of Django: Web Frameworks that are Secure by Default
Case Study of Django: Web Frameworks that are Secure by Default
 
Security .NET.pdf
Security .NET.pdfSecurity .NET.pdf
Security .NET.pdf
 
Security Best Practices for Bot Builders
Security Best Practices for Bot BuildersSecurity Best Practices for Bot Builders
Security Best Practices for Bot Builders
 
OISF Aniversary: Active Defense - Helping threat actors hack themselves!
OISF Aniversary: Active Defense - Helping threat actors hack themselves!OISF Aniversary: Active Defense - Helping threat actors hack themselves!
OISF Aniversary: Active Defense - Helping threat actors hack themselves!
 
InnoTech 2017_Defend_Against_Ransomware 3.0
InnoTech 2017_Defend_Against_Ransomware 3.0InnoTech 2017_Defend_Against_Ransomware 3.0
InnoTech 2017_Defend_Against_Ransomware 3.0
 
Defending against Ransomware and what you can do about it
Defending against Ransomware and what you can do about itDefending against Ransomware and what you can do about it
Defending against Ransomware and what you can do about it
 
Make it Fixable (Security Divas 2017)
Make it Fixable (Security Divas 2017)Make it Fixable (Security Divas 2017)
Make it Fixable (Security Divas 2017)
 
BSides Cleveland: Active Defense - Helping threat actors hack themselves!
BSides Cleveland: Active Defense - Helping threat actors hack themselves!BSides Cleveland: Active Defense - Helping threat actors hack themselves!
BSides Cleveland: Active Defense - Helping threat actors hack themselves!
 
002 - Account Setup _ Primer -- hide01.ir.pptx
002 - Account Setup _ Primer  --  hide01.ir.pptx002 - Account Setup _ Primer  --  hide01.ir.pptx
002 - Account Setup _ Primer -- hide01.ir.pptx
 
Identifying a Compromised WordPress Site
Identifying a Compromised WordPress SiteIdentifying a Compromised WordPress Site
Identifying a Compromised WordPress Site
 
(ISC)2 Cincinnati Tri-State Chapter: Phishing Forensics - Is it just suspicio...
(ISC)2 Cincinnati Tri-State Chapter: Phishing Forensics - Is it just suspicio...(ISC)2 Cincinnati Tri-State Chapter: Phishing Forensics - Is it just suspicio...
(ISC)2 Cincinnati Tri-State Chapter: Phishing Forensics - Is it just suspicio...
 
Introduction to Web Application Security - Blackhoodie US 2018
Introduction to Web Application Security - Blackhoodie US 2018Introduction to Web Application Security - Blackhoodie US 2018
Introduction to Web Application Security - Blackhoodie US 2018
 

Más de OWASP Delhi

Más de OWASP Delhi (20)

Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resourcesGetting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
 
Securing dns records from subdomain takeover
Securing dns records from subdomain takeoverSecuring dns records from subdomain takeover
Securing dns records from subdomain takeover
 
Effective Cyber Security Report Writing
Effective Cyber Security Report WritingEffective Cyber Security Report Writing
Effective Cyber Security Report Writing
 
Data sniffing over Air Gap
Data sniffing over Air GapData sniffing over Air Gap
Data sniffing over Air Gap
 
UDP Hunter
UDP HunterUDP Hunter
UDP Hunter
 
Demystifying Container Escapes
Demystifying Container EscapesDemystifying Container Escapes
Demystifying Container Escapes
 
Automating WAF using Terraform
Automating WAF using TerraformAutomating WAF using Terraform
Automating WAF using Terraform
 
Actionable Threat Intelligence
Actionable Threat IntelligenceActionable Threat Intelligence
Actionable Threat Intelligence
 
Threat hunting 101 by Sandeep Singh
Threat hunting 101 by Sandeep SinghThreat hunting 101 by Sandeep Singh
Threat hunting 101 by Sandeep Singh
 
Owasp top 10 vulnerabilities
Owasp top 10 vulnerabilitiesOwasp top 10 vulnerabilities
Owasp top 10 vulnerabilities
 
Recon with Nmap
Recon with Nmap Recon with Nmap
Recon with Nmap
 
Securing AWS environments by Ankit Giri
Securing AWS environments by Ankit GiriSecuring AWS environments by Ankit Giri
Securing AWS environments by Ankit Giri
 
DMARC Overview
DMARC OverviewDMARC Overview
DMARC Overview
 
Cloud assessments by :- Aakash Goel
Cloud assessments  by :- Aakash GoelCloud assessments  by :- Aakash Goel
Cloud assessments by :- Aakash Goel
 
Pentesting Rest API's by :- Gaurang Bhatnagar
Pentesting Rest API's by :- Gaurang BhatnagarPentesting Rest API's by :- Gaurang Bhatnagar
Pentesting Rest API's by :- Gaurang Bhatnagar
 
Wireless security beyond password cracking by Mohit Ranjan
Wireless security beyond password cracking by Mohit RanjanWireless security beyond password cracking by Mohit Ranjan
Wireless security beyond password cracking by Mohit Ranjan
 
IETF's Role and Mandate in Internet Governance by Mohit Batra
IETF's Role and Mandate in Internet Governance by Mohit BatraIETF's Role and Mandate in Internet Governance by Mohit Batra
IETF's Role and Mandate in Internet Governance by Mohit Batra
 
Malicious Hypervisor - Virtualization in Shellcodes by Adhokshaj Mishra
Malicious Hypervisor - Virtualization in Shellcodes by Adhokshaj MishraMalicious Hypervisor - Virtualization in Shellcodes by Adhokshaj Mishra
Malicious Hypervisor - Virtualization in Shellcodes by Adhokshaj Mishra
 
ICS Security 101 by Sandeep Singh
ICS Security 101 by Sandeep SinghICS Security 101 by Sandeep Singh
ICS Security 101 by Sandeep Singh
 
Thwarting The Surveillance in Online Communication by Adhokshaj Mishra
Thwarting The Surveillance in Online Communication by Adhokshaj MishraThwarting The Surveillance in Online Communication by Adhokshaj Mishra
Thwarting The Surveillance in Online Communication by Adhokshaj Mishra
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Secrets of Google VRP by: Krzysztof Kotowicz, Google Security Team

  • 1. Krzysztof Kotowicz, Google Security Team Secrets of Google VRP The bug hunter's guide to sending great bugs
  • 3. Google Security Team - we handle the submissions to Google VRP What makes us happy? Who are we?
  • 4. Google Security Team - we handle the submissions to Google VRP What makes us happy? Who are we?
  • 5. Life of a VRP report Bug submission Product team ACK Triage Bugfix Finding duplicates Severity assessment Panel Remediation Reward Reproduction
  • 6. Life of a VRP report We handle >150 vulnerability reports every week: ● Read ● Understand (Is it in scope? What's the impact?) ● Reproduce (find the application, set up the accounts) ● Create a proof-of-concept ● File the bug and explain it to the product team ● Check if this is duplicate ● Communicate with the bughunter
  • 8. do not result in bugs > 90%
  • 9. Most popular issues ● foobar@gmail.com receives e-mails to foo.bar@gmail.com ● XSS in translate.googleusercontent.com Both are invalid :/ Visit the Bughunter University to check other common non-vulnerabilities! https://g.co/bughunteruniversity
  • 11. It varies: ● The panel evaluates the impact first and finds the worst-case scenario ● We look for the root cause, so report may turn out to be a duplicate ● We might pay more for unusually clever or severe vulnerabilities ● We might pay less for unusual user interaction required ● There's a bug chain bonus Might be $5000 for an XSS on www.google.com or a $100 in an acquisition How much do we pay for an XSS?
  • 12. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem Which bug has more impact? Remote code executionMixed content
  • 13. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem Which bug has more impact? Remote code execution on blog.fooacquisition.co.uk Mixed content on accounts.google.com
  • 14. Vulnerability impact What can the attacker do having exploited the vulnerability? ● Type of the application ● Number of users affected ● Difficulty of exploitation ● Requirements for the attack ○ Victim interaction? ○ Shared computer use? ● Effect after the attack
  • 15. Vulnerability impact Look beyond the vulnerability types! ● Not every XSS, CSRF is the same ● Not every application is equally important ● Is the attack useful for the attacker or is is just annoying for the victim?
  • 16. Some heuristics are tuned to a different adversary ● Botnet owner hijacking accounts vs. your sister ● Tradeoffs are unavoidable ● Mitigations might not trigger when pentesting - it works as intended ● Common examples: ○ Account recovery of test accounts ○ reCAPTCHA bypass ● If in doubt, send it and we'll investigate ● Most of the times it turns out it's not a bug Testing on a small scale
  • 17. Choose your target Google product ● Bugs are harder to find ● Unique technology stacks ● Defense in depth ● There's a lot of products! ● Bigger payouts ○ Big impact ○ A lot of users ● Tips: ○ Don't go after the obvious ○ Look at older apps & rare features Acquisition ● Bugs are easier to find ● Standard software stacks ○ Wordpress, Apache, PHP, Rails ● A lot of duplicate issues ● Much lower rewards ● Often does not meet the bar for credit ○ Not integrated ○ Few users ○ Non-sensitive websites ○ Soon to-be-deprecated
  • 18. Spam / phishing / social engineering vectors - out of scope ● We know it's possible. We know phishing works! ● Text injection / Content spoofing ● Sending e-mails from noreply@google.com ● Open redirect to a phishing site ● RFD, Make your victim execute the downloaded file ● SPF / DKIM - we know and are working on it. Stay tuned. In-scope or out of scope?
  • 19. Local attacker (sharing OS user account) - out of scope ● It's impossible to protect! ● If the attacker uses your browser, it's game over anyway ● Cached content after logout, recovering passwords from Password Manager, cookies working for a brief time after logout, reusing tokens from HTTPS streams, malicious files downloaded, backdoored browser extensions... In-scope or out of scope?
  • 20. Domain names, acquisitions, vendor websites - check whois, DNS. Ask if in doubt. Common out of scope - zagat.com, polarb.com, community.nest.com $ whois nest.com | grep -i google Registrant Organization: Google Inc. Registrant Email: dns-admin@google.com $ whois community.nest.com | grep -i google In-scope or out of scope? $ host connect.googleforwork.com connect.googleforwork.com is an alias for google-partner-customer.hosted.jivesoftware.com. google-partner-customer.hosted.jivesoftware.com has address 204.93.79.169 google-partner-customer.hosted.jivesoftware.com mail is handled by 10 mx1-in.phx1.jivehosted.com. $ whois 204.93.79.169 | grep -i google
  • 21. Proprietary + Confidential Creating the vulnerability report
  • 22. https://goo.gl/vulnz Faster than security@google.com Tips for the first-timers After the submission, we’ll talk over e-mail Submission form
  • 23. Reproduction steps ● Google launches new products or features daily. You might know the application better than the Security Team! ● Specify the target ○ URL, application name, Android package name ○ Specify the elements to click ○ Essential for more complex issues ● If multiple users involved in the attack, please say so.
  • 24. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem Reproduction steps 1. Go to www.google.com and sign in. 2. Browse to https://www.google. com/preferences?igu=2 3. Note that the server does not issue an X-Frame- Options header when the igu=2 parameter is present. 4. Also note that this page displays a Sign In button, but any changes made to these settings will affect the signed-in user's account. I just found a big clickjacking bug on your website google.com, your data can be fully modified without any permissions! If you really want to know please give a website link, I will show you how it affects you.
  • 25. Explain who can exploit the vulnerability, what is required to trigger it, and what the attacker gains afterwards. Attack scenario “With this critical vulnerability I can execute code.” “A regular user of Google Foobar may escalate privileges to become a Google Foobar group administrator. The other Foobar group administrator needs to click the link given by the attacker.”
  • 26. ● We prefer text, but if it helps - go ahead ● Not a replacement for written reproduction steps ● Make it short ○ Once, we got a >1hr video. Hillarious, but not a bug :/ ● Don't write in Notepad, keep the writeup separate ○ Hard to follow, slow and impossible to copy-paste ● Upload an unlisted video, share the URL Videos and screenshots
  • 27. Proprietary + Confidential OWASP top 10 and beyond
  • 28. A1 - Injection What are you injecting? Where are you injecting it? ● Text snippet - usually not a problem ● XML - XXE attack ○ Billion laughs attack. ○ Verify - sometimes it's not a problem (hard limit for entity expansion - e.g. up to 10000) ● SQL injection ○ Google products rarely use SQL databases ○ Automated tools (sqlmap) are often wrong ○ Verify the issue manually, especially a blind SQLi ● LDAP injection ○ Highly unlikely ● Think outside the box!
  • 29. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem A1 - Injection I used a tool that detected a blind SQL injection in http: //foobar.google.com/citations? view_op=new_profile&hl=%Inject_Here%en List of tables extracted from the DB: sb_host_adminAffichage1name Affichage1name yhmm yhmAffichage1 sb_host_adminAffichage1 ststaffFusion Fusion8 Cold ColdFusion ColdFusion8 slserver server bayview bayviewpath edu mac windows pc win Affichage1Affichage1edu pierre liste Lieux "Lieu de la manifestation" Pr�f�rencesUtilisateur "Nombre total de membres" If a tool found the vulnerability - verify it! Blind SQL exploitation tools often cause false positives. The table list looks random - it's a dictionary from sqlmap. It's highly improbable there’s a “Coldfusion8”, “Lieu de la manifestation”, and “Nombre total de membres” columns in the table.
  • 30. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem A1 - Injection Command injection We can include any command in the below URL format: https://console.cloud.google. com/home/dashboard/project=;sudo%20id Let’s assume the attacker sends the above URL to the victim. Once the victim accesses the URL and he clicks “Activate cloud shell”, the command executes. Found by S.Venkatesh, @pranavvenkats ● Clear reproduction steps ● Simple attack scenario ● Bash script created client-side in JS ● Requires user interaction (click) ○ we found a better vector internally $6000 (5000 + 1000 for thinking outside the box)
  • 31. A2 - Broken authentication & session management ● Token timeouts ● Token invalidation upon password change ● User enumeration attacks ○ To some extent - unavoidable ● Cookies working after logout ○ A known issue ● Account recovery ○ It's hard to test on a small scale ○ Attempts done on test accounts created from the same location ○ Often turns out to be invalid
  • 32. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem A2 - Broken authentication & session management The session cookies are not expired when the user is logged out of his account. This will lead to Session Misconfiguration. The Attacker will be able to use the user cookies/sessions to log into his account whenever he wants. The cookies/session must expire when the user is logged out of his account and every time new cookie/session will be provided to the user logging in. We are aware of this issue. Session cookies are valid for a varying amount of time after the logout. It's not a vuln - in order to access the cookies, the attacker needs physical access to the targeted login session.
  • 33. A3 - XSS ● Where does it fire? ○ Use alert(document.domain) instead of alert(1) ● Is the domain sandboxed? ○ See the sandbox domain list on BHU list ○ Are there interesting cookies there? ● Is user interaction required? ● Are users typing the payload themselves? ● Angular sandbox, CSP, browser XSS filters ○ they are not security boundaries ○ Assume there is a CSP and Angular sandbox bypass and no in-browser XSS filter
  • 34. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem 1. Go to Youtube and create an annotation with a link on a video. Link to any Google Plus-page. 2. Capture the request, use the following payload for the URL: javascript://plus.google.com/?%0aalert% 28document.domain%29// 3. Save and look at the video. Then press the annotation. XSS on www.youtube.com A3 - XSS Found by Frans Rosén, @fransrosen Full writeup Clear reproduction steps! Regex patterns validated server side For plus.google.com URLs the protocol was not validated :) //plus.google.com? alert(document.domain)
  • 35. A4 - Insecure direct object reference ● What is the data you're getting via IDOR? ○ Is it public information? ● How long is the reference in the parameter? ○ Can you bruteforce it before the heat death of the sun? ● Is the parameter random, or sequential? ● Sometimes it’s by design ○ E.g. unguessable URLs ○ Mitigated by the parameter length and randomness ● You need to trust the user who you're sharing with ○ Whoever you're sharing the URL with, can just copy the contents
  • 36. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem A4 - Insecure direct object reference There's an IDOR vulnerability on: https://android-review.googlesource. com/changes/201130/detail?O=10004 If you change the O parameter value you'll receive e-mail and names of other users - e.g. "owner": { "_account_id": 1084268, "name": "Shubham Ajmera", "email": "shubhamajmera@google.com", } That's a list of authors committing to an open- source project. That information is public. A list of those can be easily extracted off git: $ git clone https://android.googlesource. com/platform/libcore $ cd libcore $ git shortlog -sne
  • 37. A5 - Security misconfiguration ● Directory listing ○ Depends on what's in the directory ● Ancient, not exploitable issues - not a vuln ○ TRACE method enabled / XST ● Information leak ○ Point out what information - credentials, debug information, cookie values (HTTPOnly bypass?) ● Various defense in depth mechanisms (CSP, HSTS, public key pinning, ...) ○ We know and are getting there (and trust us, it IS complex) ○ Lack of e.g. CSP header is usually not a vuln in itself ○ Unless we e.g. advertise it or there's an evident flaw/bypass
  • 38. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem A5 - Security misconfiguration Debug page is accessible at https: //booboo.google.com/debug. It allows the visitor to see the service credentials: - login + password to the API server - error log details The screenshot of the page is attached below. Clear mention of what data is available Easily reproductible Screenshot to quickly determine if it's valid
  • 39. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem A5 - Security misconfiguration Directory listing is enabled at www.example. com/wp-content/images Screenshot with a list of jpg, gif, etc. files. No security impact - these are just static files, publicly accessible. Missing viable attack scenario. Would be valid if there are log files, database backup files available.
  • 40. ● Most common issue? TLS configuration on www.google.com ○ BEAST, POODLE, CRIME, DROWN ○ Weak ciphers ● We have countermeasures. Most of the times, it's just a bad report from an automated tool ● Not every website is HTTPS yet. We're working on it. ● Referrer leaks, sensitive data on HTTP ○ Rare, but they happen ○ Mostly in acquisitions A6 - Sensitive data exposure
  • 41. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem A6 - Sensitive data exposure www.google.com and www.youtube.com still support SSLv3, making the website vulnerable to POODLE SSL attack. You announced SSLv3 and RC4 deprecation and then you still offer them! We are aware of it. We can't simply switch SSLv3 off support overnight. Google has to support a wide range of clients, like old mobile phones, so big changes like this require careful roll-out. Meanwhile, we will never offer SSLv3 or RC4 to a client if more secure options are available.
  • 42. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem A6 - Sensitive data exposure www.example.com/reset_password loads external widgets - e.g. a Facebook like button: <script src="https://facebook.com/widget.js"> </script> The password reset token is sent to those 3rd party websites in a Referrer header. A valid bug. A sensitive token value should not be sent to external websites. Hall Of Fame (it's an acquisition)
  • 43. A7 - Missing function level access control ● Multiple roles in the application, one role allows for more than described ○ User Management Admin vs. Billing Admin vs Admin ○ Please link to the documentation where the roles are described ● When users are downgraded, their tokens are still valid ○ How long are the tokens valid for? ○ Please retry a few times ● How useful is it in an attack? ○ Changing a language ○ Re-adding yourself to the admin group ○ Accessing password recovery tokens of other users
  • 44. A8 - Cross Site Request Forgery ● Make sure the action triggered is interesting from a security perspective ○ CSRF a contact support form ○ CSRF sharing a Google Doc ● Think like an attacker ● Token does not expire ○ If you can read the token, you can do so much more! ● Token does not change the value ○ If you can read the token, you can do so much more! ● CSRF logout - a known issue
  • 45. A9 - Components with known vulnerabilities ● Out of date software ○ e.g. Wordpress plugins ○ Specify how did you fingerprint the version (e.g. a README file exposed) ○ Links to CVEs help ● Just disclosing a version number / server banner is not a bug ● Bugs exploitable only on old browsers ○ If the browser vendor deprecates it, there are no security patches ○ Instead of e.g. an XSS, there's probably a browser exploit available
  • 46. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem A9 - Components with known vulnerabilities Wordpress installation at http://acquisition. example.com/ uses an outdated plugin FooBar 1.47: http://acquisition.example.com/wp- admin/plugins/foobar/README.txt This plugin has an SQL injection vulnerability described here: http://blog.researcher.com (CVE- 2015-0101) - it was patched in 1.51. Actionable - we can confirm the version, see the vulnerability details and understand the impact. No need for PoC if it requires you to have an account in Wordpress installation. $100.00 / Hall Of Fame - depending on a site and the vuln details.
  • 47. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem A9 - Components with known vulnerabilities An attacker can run arbitrary code at www.foo. com. An old Wordpress installation there is vulnerable to SQL injection. I extracted the password hashes and bruteforced the admin password - it's "IDDQD". I logged to the admin panel and uploaded a PHP shell. Here is a zip file with other files on this server. Stop at confirming the SQL injection, or even just give us the vulnerable version number and link to vuln descriptions. Don't exploit the vulnerabilities without prior permissions from us! It's a valid bug, we investigate and pay for maximum impact.
  • 48. A10 - Unvalidated Redirects and Forwards ● Open redirect to http[s]:// is not an issue ○ Caveat: OAuth ● It is useful for triggering other vulnerabilities ○ Angular ng-include ○ CSP bypass ○ Referrer check bypass ○ URL whitelists bypass ● Open redirect to javascript: or data: - report it ● Use it in an exploit chain! ○ https://www.google.com/url?sa=D&q=http://evil.com
  • 49. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem Found by Brett Buerhaus. Full writeup, including an impact and attack scenario. Open-redirect resulting in XSS on admin.google. com $5000 A10 - Unvalidated Redirects and Forwards The ServiceNotAllowed page appears when you attempt to access a Google app service that has not been configured for your domain. It requires that you are logged into at least two accounts and will give you a form to switch accounts. When you select an account via the bullet on the page, it executes JavaScript to redirect your browser. https://admin.google.com/foobar. com/ServiceNotAllowed? service=grandcentral&continue=javascript:alert (document.cookie);//
  • 50. OWASP top 10 ● This and other lists are a great resource for classifying vulnerabilities ● They don't tell the whole story ● The impact of a given vulnerability is application-specific ● Google VRP panel evaluates the impact To profit from the VRP: ● Understand the application(s) ● Focus on finding vulnerabilities useful in an attack ● Don't blindly scan for **insert type here*** - think!
  • 52. Summary To submit great bugs: 1. Find a vulnerability - you all know how to do it :) 2. Evaluate it a. Visit Bughunter University b. Look beyond the vulnerability type c. Assess the impact 3. Report the bug at goo.gl/vulnz a. Think about a sensible attack scenario b. Prepare clear reproduction steps 4. Profit!
  • 53. Good luck on your future bughunting!