A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages!
summary
A custom URL-parser fuzzer tests many languages (Python, PHP, Perl, Ruby, Java, JavaScript, Wget, cURL) against a local DNS/webserver/iptables setup and finds multiple 0days in standard libraries, including inconsistent host/port/path parsing, Unicode newline encoding and libC gethostbyname quirks. These allow URL parser fuzzing to produce SNI newline smuggling and CRLF-based protocol smuggling, chain into a memcached-stored Ruby object and achieve GitHub Enterprise RCE in a working demo that earned a bounty.
AI-written summary · about
chapters (17)
- 0:00Intro
- 2:11Agenda
- 2:58What is SSRF?
- 3:52Protocol Smuggling in SSRF
- 4:55Quick Fun Example
- 10:02Fuzzer Architecture
- 12:20URL Parsing issues
- 13:23URL Components(RFC 3986)
- 14:15Big Picture
- 20:03NodeJS Unicode Failure
- 23:00GLibc NSS Features
- 30:09Abusing IDNA Standard
- 32:07Abusing URL Parsers - Case Study
- 36:09Protocol Smuggling - Case Study
- 44:58Mitigations
- 45:39Summary
- 46:24Further works
related talks
50mA New Era of SSRF - Exploiting URL Parser in Trending Programming Languages!
01h 04mServer-Side Browsing Considered Harmful
42mModern web application bugs
26mExposing Hidden Exploitable Behaviors In Programming Languages Using Differential Fuzzing
58mModern web application bugs
56mModern Web Vulnerabilities 2020
47mLive Hacking: Breaking into Your Web App
35mStrangerDanger: Finding Security Vulnerabilities Before They Find You!
