~/talk

A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages!

Talkat Black Hat Asia 2018 · 2018-03-20..03-23· [security, php, python]
slides:none on file

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

  1. 0:00Intro
  2. 2:11Agenda
  3. 2:58What is SSRF?
  4. 3:52Protocol Smuggling in SSRF
  5. 4:55Quick Fun Example
  6. 10:02Fuzzer Architecture
  7. 12:20URL Parsing issues
  8. 13:23URL Components(RFC 3986)
  9. 14:15Big Picture
  10. 20:03NodeJS Unicode Failure
  11. 23:00GLibc NSS Features
  12. 30:09Abusing IDNA Standard
  13. 32:07Abusing URL Parsers - Case Study
  14. 36:09Protocol Smuggling - Case Study
  15. 44:58Mitigations
  16. 45:39Summary
  17. 46:24Further works
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.