- 8 Nis 2020
- 221
- 73
İlk olarak, bazı fikirleri birleştirelim. Web filtreleme süreci nasıl işliyor? Eğer bunu tartışıyorsak, bunu gözden geçirmemiz gerekiyor. Öncelikle web filtreleme süreci dosya uzantısına bakar ve zararlı bir uzantı yoksa, "okay" verir. Bu saldırıda mime tipine bakıyor ki bu da zararlı bir aktivite olarak gözükmüyor o yüzden "okay" veriyor ve üçüncü olarak da javascript dosyasında kötü bir fonksiyon olup olmadığına bakıyor. Kısacası:
HTML Smuggling Nasıl Yapılır?
HTML5 indirme özniteliği:
Download HTML5 - HTML5, bağlantı etiketleri için "download" özniteliğini tanıttı. Aşağıdaki tüm modern tarayıcılar tarafından desteklenen bir HTML satırı düşünün:
Bir kullanıcı hiper linke tıkladığında, download özniteliği tarayıcıya href özniteliğiyle işaret edilen hedefi indirmesini ve "dosyam..doc" olarak diske kaydetmesini söyler. Elbette, bağlantı ve download özniteliği HTML yerine JavaScript kullanılarak da oluşturulabilir.
Bloplar ve URL'ler:
Bir Blob, ham veriyi temsil eden değişmez bir nesnedir. Bloplar, istemci tarafında URL bekleyen JavaScript API'lerine geçirebileceğiniz dosya benzeri nesneler oluşturmanıza izin verir. Web sunucusunun dosyayı sağlamasını gerektiren bir durum yerine, Blob tamamen JavaScript kullanılarak yerel olarak oluşturulabilir.
Bu kod, "octet/stream" MIME türünde bir Blob oluşturur ve verileri myData değişkeninde bulunan verilerle doldurur. Daha sonra, URL.createObjectURL'yi kullanarak Blob nesnemizden bir URL oluşturabilir ve ona bir bağlantı noktasına sahip olabiliriz:
Son olarak, JavaScript'in HTMLElement.click() methodunu kullanarak bağlantı nesnesine bir tıklama simüle edebiliriz:
Sonda demo olarak yaptığım html smuggling saldırısının demosuna baka bilirsiniz!
- HTML ve JavaScript kodunu inceler.
- Dosya uzantılarını ve MIME türlerini kontrol eder.
- Kötü amaçlı kod olup olmadığını kontrol eder.
HTML Smuggling Nedir?
HTML Smuggling, saldırganların web proxy'leri, sandbox'lar ve e-posta taramaları gibi güvenlik önlemlerini atlatmak için kullandığı bir tekniktir. Bu teknikte, zararlı kod bir HTML dosyası içerisine gömülür ve güvenlik taramalarından kaçmak için çeşitli yöntemler kullanılır.HTML Smuggling Nasıl Yapılır?
HTML5 indirme özniteliği:
Download HTML5 - HTML5, bağlantı etiketleri için "download" özniteliğini tanıttı. Aşağıdaki tüm modern tarayıcılar tarafından desteklenen bir HTML satırı düşünün:
HTML:
<a href="/dosya/dosya.doc" download="dosyam.doc">Tıkla</a>
Bir kullanıcı hiper linke tıkladığında, download özniteliği tarayıcıya href özniteliğiyle işaret edilen hedefi indirmesini ve "dosyam..doc" olarak diske kaydetmesini söyler. Elbette, bağlantı ve download özniteliği HTML yerine JavaScript kullanılarak da oluşturulabilir.
Bloplar ve URL'ler:
Bir Blob, ham veriyi temsil eden değişmez bir nesnedir. Bloplar, istemci tarafında URL bekleyen JavaScript API'lerine geçirebileceğiniz dosya benzeri nesneler oluşturmanıza izin verir. Web sunucusunun dosyayı sağlamasını gerektiren bir durum yerine, Blob tamamen JavaScript kullanılarak yerel olarak oluşturulabilir.
JavaScript:
var myBlob = new Blob([myData], {type: 'octet/stream'});
Bu kod, "octet/stream" MIME türünde bir Blob oluşturur ve verileri myData değişkeninde bulunan verilerle doldurur. Daha sonra, URL.createObjectURL'yi kullanarak Blob nesnemizden bir URL oluşturabilir ve ona bir bağlantı noktasına sahip olabiliriz:
JavaScript:
var myUrl = window.URL.createObjectURL(blob);
myAnchor.href = myUrl;
Son olarak, JavaScript'in HTMLElement.click() methodunu kullanarak bağlantı nesnesine bir tıklama simüle edebiliriz:
JavaScript:
myAnchor.click();
Sonda demo olarak yaptığım html smuggling saldırısının demosuna baka bilirsiniz!
Vimeo
vimeo.com
MITRE ATT&CK Tactics and Techniques (HTML smuggling)
Sr No. | Tactic | Technique |
---|---|---|
1 | Initial Access (TA0001) | T1566 Phishing |
2 | Execution (TA0002) | T1204 User Execution T1204.002 Malicious File T1059.007 JavaScript T1027.006 Obfuscated Files or Information: HTML smuggling |
- References:
HTML Smuggling: The Hidden Threat in Your Inbox | Trustwave
Last October, Trustwave SpiderLabs blogged about the use and prevalence of HTML email attachments to deliver malware and phishing for credentials.www.trustwave.comGitHub - defparam/smuggler: Smuggler - An HTTP Request Smuggling / Desync testing tool written in Python 3
Smuggler - An HTTP Request Smuggling / Desync testing tool written in Python 3 - defparam/smugglergithub.com
x33fcon.com