Successfully reported this slideshow.
Your SlideShare is downloading. ×

XXE injection - Nguyễn Tăng Hưng

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 29 Ad

More Related Content

Slideshows for you (20)

Viewers also liked (20)

Advertisement

Similar to XXE injection - Nguyễn Tăng Hưng (20)

More from Võ Thái Lâm (14)

Advertisement

Recently uploaded (19)

XXE injection - Nguyễn Tăng Hưng

  1. 1. XXE Injection Tấn công & Phòng thủ Bootcamp - 10/2014 Nguyễn Tăng Hưng Information Security Analyst FPT Telecom
  2. 2. Nội dung trình bày  Giới thiệu  XML External Entity (XXE) - 101  XXE Attack  Kỹ thuật phát hiện lỗi  Kỹ thuật phòng tránh  Tham khảo
  3. 3. Giới thiệu
  4. 4. Lịch sử phát hiện  Nguồn: Trên Bugtraq 10/2002: XXE: http://www.securityfocus.com/archive/1/297714/2002-10-27/2002-11-02/ Không mới, nhưng......
  5. 5. Đến năm 2014,.....
  6. 6. Đến năm 2014,...
  7. 7. Đến năm 2014,...
  8. 8. Thống kê từ CVE   Nguồn: PHP Conference Japan 2013 - Speaker: Kousuke Ebihara
  9. 9. Thống kê từ OSVDB  Từ khóa XXE
  10. 10. XML External Entity 101
  11. 11. XML External Entity  XML (Extensible Markup Language): là một tiêu chuẩn để trao đổi dữ liệu có cấu trúc theo định dạng text.  Ví dụ: <?xml version="1.0" encoding="UTF-8"?> <user> <userid>0</userid> <username>Hung</username> <lastname>Nguyen</lastname> <job>troller</job> </user>
  12. 12. XML External Entity  Entity: có thể được sử dụng như một kiểu tham chiếu đến dữ liệu, cho phép thay thế một ký tự đặc biêt, một khối văn bản hay thậm chí toàn bộ nội dung một file vào trong tài liệu xml. Một số kiểu entity: character, named (internal), external, parameter.  Ví dụ: - &amps; -> & - &lt; -> < - &gt; -> > - &#x41; -> A - <!ENTITY n "Hung">
  13. 13. XML External Entity  External entity: entity tham chiếu đến nội dung một file bên ngoài tài liệu xml  Ví dụ: <!DOCTYPE order SYSTEM "order.dtd"> <!DOCTYPE ran SYSTEM "/dev/random"> <!DOCTYPE request [ <!ENTITY include SYSTEM "c:boot.ini"> ]>
  14. 14. XXE Attack
  15. 15. Các bước trong quá trình xác định External Entity  Phân giải - XML - DOCTYPE - Các khai báo Entities  Resolve các external entities - Thư viện xml - Entity loader từ framework
  16. 16. XXE Attack  Khi DTD (Document Type Definition) được xử lý, ứng dụng có thể đọc hoặc nhúng file vào trong tài liệu XML. Nếu có khả năng điều khiển được nội dung của DTD, khi đó attacker có thể chỉ định truy xuất các tài nguyên nhạy cảm hoặc thực hiện các kiểu khai thác khác.  Ví dụ: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE request [ <!ENTITY here SYSTEM "file:///etc/passwd"> ]>
  17. 17. Nguy cơ của XXE Attack  Information Exposed  Port scanning  DOS  SSRF  ...
  18. 18. Demo 1 - Một số nguy cơ XXE
  19. 19. Kỹ thuật phát hiện lỗi
  20. 20. Error based XXE Injection  Ý tưởng: ' ; " ; < ; <!--  Từ khóa: - "parser error" - "failed to load external entity" - "XMLParserError" - "Unknown language DATA" - "Login DATA are not valid" - "Password for user DATA does not match"
  21. 21. Demo 2 - Error based XXE Injection
  22. 22. ini_set('display_errors', 'Off'); error_reporting(0);
  23. 23. Kết thúc ????
  24. 24. Blind XXE Injection  Kỹ thuật 1:  Ý tưởng: - Sử dụng cơ chế thẩm tra DTD & XSD - Thu thập trạng thái của kết quả thẩm tra (dựa vào kết quả hay lỗi)  Hạn chế: - Không phải ứng dụng nào cũng hiện thực việc thẩm tra trước khi xử lý - Không áp dụng được trên PHP trong một số trường hợp - ...
  25. 25. Blind XXE Injection (tt)  Kỹ thuật 2: Timed - based  Ý tưởng: - Còn nhớ ví dụ DOS ở trên ?
  26. 26. Demo 3 - Time based XXE
  27. 27. Demo 4 - Phối hợp với Burp Suite
  28. 28. Kỹ thuật phòng tránh  Update, update & update - libxml2 -> version 2.9.0 /* https://git.gnome.org/browse/libxml2/commit/?id=8915c */ - PHP -> version 5.3.23 /* https://github.com/php/php-src/ commit/8e76d0404b7f664ee6719fd98f0483f0ac46 69d6*/ - Net Framework -> version 4 - Java /* https://www.owasp.org/index.php/XML_External_Entit
  29. 29. Tham khảo  http://www.securityfocus.com/archive/1/2977 14  https://www.owasp.org/index.php/XML_Exter nal_Entity_(XXE)_Processing  Introduction of XXE attack and XML Bomb with PHP - Kousuke Ebihara - PHPCon Japan, 2013  Blind XXE injections - HackPra, Germany, Bochum, 05/2012  Google :-)

×