document.forms[0].submit();
- Requestin Metodu değişince CSRF kontrolünü bırakabilir.
- CSRF tokeni varken kontrol edebilir ama olmaması durumunda bypass edilebilir. Yani requestten tamamen silip bypass edilebilir.
- CSRF token belli bir kullanıcının sessionu ile ilişkili olmayabilir. Bir kullanıcı kendi hesabının CSRF tokeni ile başka kullanıcıya işlem yaptırabilir.
- CSRF token is tied to a non-session cookie ⇒ Bu tipte şöyle bir kontrol yaptık. Cookie’de geçen csrf ile sessiondaki csrf birbirine ne kadar bağlı. Bunu test etmek için sessionu değiştirdiğimizde unauthorized hatası alırken CSRF değiştirdiğimizde invalid csrf hatası aldık. Bu çok da bağlı olmayabileceğini bize gösterdi. Bu durumda başka bir kullanıcının CSRF cookie’si ile csrf kodunu kullanırsak sessiona bağlı olmadığı için başarılı şekilde işlemi yapabileceğimiz anlamına geliyor. İki farklı kullanıcı ile deneyince bunun doğru olduğunu gördük. Şimdi geriye saldırganın aldığı cookie csrf tokenini kurbanın header’ına eklemek kaldı. Bunun için search fonksiyonunu kullanıyoruz. Buraya arayacağımız terimi girdiğimizde cookie’mizde bunun yer aldığını gördük. Biz de search kısmını /?search=test%0d%0aSet-Cookie:%20csrfKey=L6qMebH75fU5y31rVB0dqr573JyxuP8a bu şekilde değiştirdik. Böylece cookie eklenince response tarafında Set-Cookie: test Set-Cookie: csrfKey = …. Şeklinde hedaer oluşturuldu. Böylece biz kurbanın headerına saldırganın csrf’ini ekleyebilmiş olduk. Daha sonra da saldırganın tokenini kullanan bir formla kurbanın tıklamasını sağlayınca emaili değiştirebildik. Bu payloadda %0d%0a önemli çünkü alt satıra geçiriyor
- CSRF token is simply duplicated in a cookie ⇒ Eğer csrf kontrolü arkada session ile bağlantılı bir şekilde tutulmuyor da cookie’de saklanıyor ve bununla eşleşme kontrol ediliyorsa, bir önceki zaafiyetteki gibi set cookie işlevi olan bir yerden kurbanın cookielerine istediğimiz csrf bilgisini set edip bunu formda geçirerek işlem yapabiliriz.
- Referer Header ⇒ Bazı uygulamalar csrf koruması amacıyla HTTP Referer headerını kullanılır. Buna bağlı kontrollerde zayıflıklardan bir tanesi referer header’ının gönderilmesi ama dolu mu boş mu olduğunun kontrol edilmemesi durumudur. Bunu test etmek için PoC mizin başına <meta name=”referrer” content=”no-referrer”> tagını ekleyebiliriz.
- Referer tabanlı korumalarda bir de referer kısmının kontrolünde zayıflıklar olabilir. Örnek olarak referer hedaerındaki değerin, ana domaini içerip içermediğini veya değerin başlangıç kısmının ana domain olup olmadığını kontrol ediyor olabilir. Böyle durumlarda da saldırgan sitenin sonuna veya başına kurban site eklenerek saldırı gerçekleştirilebilir.
- Bu saldırı genelde email veya password değiştirme amacıyla kullanılır.