Hôm nay, tôi sẽ giới thiệu cho những bạn mới đang nghiên cứu XSS (Cross Site Script) một số cách bypass filter thông dụng.
1) Giơi thiệu
- Hiện nay, hầu hết các security web thường tạo ra các bộ lọc để không cho phép tiêm Cross Site Script. Tuy nhiên, chúng ta có thể (ở đây tôi nói có thể) vượt qua các bộ lọc này bằng các phương pháp thông dụng dưới đây:
2) Vượt các bộ lọc phổ biến:
2.1) bypass magic_quotes_gpc (nếu như = on)
2.2) bypass with cryption in full html
2.3) bypass with Obfuscation
2.4) bypass with trying around method
3) Diễn giải
3.1) bypass magic_quotes_gpc
- Khi php.ini ấn định magic_quotes_gpc=on, nó có nghĩa là server sẽ không cho phép ta dùng " và ' . Vì vậy khi ta chèn <script>alert('hello world!')</script> sẽ không thực hiện được vì đã phạm luật.
- Thử convert sang ascii xem sao: hello world! ==> String.fromCharCode(104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33) ==> <script>alert(String.fromCharCode(104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33))</script>. Câu này hoàn toàn hợp lệ và không phạm luật.
3.2) bypass with cryption in full html
- Rất đơn giản, chúng ta chỉ cần mã hoá (dùng urlencode của hackbar hoặc các tool khác)
- Ví dụ: <script>alert('hello world!')</script>
==> %3Cscript%3Ealert%28%27hello%20world%21%27%29%3C%2fscript%3E (nếu cần mã hoá luôn chữ).
3.3) bypass with Obfuscation
Trường hợp này khi bộ lọc kiểm tra chuổi alert, script v.v.v.
Để vượt được nó ta chỉ cần làm sai lệch 1 tý ví dụ: AlERt, ScRipT v.v.v.
Ví dụ: <ScRipT>AlERt(123456)</ScRipT>
3.4) bypass with trying around method (sử dụng các method)
- Vấn đề này hay nhắc đến ở các khung tìm kiếm dùng thẻ input, lúc này ta chỉ cần thêm "> ("> nghĩa là đóng thẻ input nếu như value nằm cuối cùng) sau đó chèn thêm <script>alert('hello world!')</script>. ví dụ
http://target.com/search.php?search="><script>alert('hello world!')</script>
4) Lời kết:
Phía trên là một số cách bypass thông dụng, vẫn còn nhiều hình thức chèn vào input như dùng onmouseover, onload v.v.v. Tuỳ tình huống vận dụng.
1) Giơi thiệu
- Hiện nay, hầu hết các security web thường tạo ra các bộ lọc để không cho phép tiêm Cross Site Script. Tuy nhiên, chúng ta có thể (ở đây tôi nói có thể) vượt qua các bộ lọc này bằng các phương pháp thông dụng dưới đây:
2) Vượt các bộ lọc phổ biến:
2.1) bypass magic_quotes_gpc (nếu như = on)
2.2) bypass with cryption in full html
2.3) bypass with Obfuscation
2.4) bypass with trying around method
3) Diễn giải
3.1) bypass magic_quotes_gpc
- Khi php.ini ấn định magic_quotes_gpc=on, nó có nghĩa là server sẽ không cho phép ta dùng " và ' . Vì vậy khi ta chèn <script>alert('hello world!')</script> sẽ không thực hiện được vì đã phạm luật.
- Thử convert sang ascii xem sao: hello world! ==> String.fromCharCode(104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33) ==> <script>alert(String.fromCharCode(104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33))</script>. Câu này hoàn toàn hợp lệ và không phạm luật.
3.2) bypass with cryption in full html
- Rất đơn giản, chúng ta chỉ cần mã hoá (dùng urlencode của hackbar hoặc các tool khác)
- Ví dụ: <script>alert('hello world!')</script>
==> %3Cscript%3Ealert%28%27hello%20world%21%27%29%3C%2fscript%3E (nếu cần mã hoá luôn chữ).
3.3) bypass with Obfuscation
Trường hợp này khi bộ lọc kiểm tra chuổi alert, script v.v.v.
Để vượt được nó ta chỉ cần làm sai lệch 1 tý ví dụ: AlERt, ScRipT v.v.v.
Ví dụ: <ScRipT>AlERt(123456)</ScRipT>
3.4) bypass with trying around method (sử dụng các method)
- Vấn đề này hay nhắc đến ở các khung tìm kiếm dùng thẻ input, lúc này ta chỉ cần thêm "> ("> nghĩa là đóng thẻ input nếu như value nằm cuối cùng) sau đó chèn thêm <script>alert('hello world!')</script>. ví dụ
http://target.com/search.php?search="><script>alert('hello world!')</script>
4) Lời kết:
Phía trên là một số cách bypass thông dụng, vẫn còn nhiều hình thức chèn vào input như dùng onmouseover, onload v.v.v. Tuỳ tình huống vận dụng.
Nguồn: exploit-db.com & hackloz.blogspot.com