iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 24
1
Security

Web Security 魔法使攻略系列 第 24

Web Security 魔法使攻略─XXE

正文

XXE

  • XML External Entity (XXE)
  • XML 外部實體注入

「介紹 XXE 之前要先知道 XML 是什麼」

XML

  • 可延伸標記式語言(Extensible Markup Language)
  • 利用電腦理解的符號,讓電腦可以處理這些資訊
  • 結構
    • 宣告 ( prolog )
    • <?xml version="1.0"?>
    • 第一行會告訴大家我一個 XML ,請用 XML 的規則解析我

文件類型定義(DTD)

  • 用來定義類型

內部實體 vs 外部實體

  • 內部實體
    • <!ELEMENT name "hello">
  • 外部實體
    • <!ELEMENT name SYSTEM "網址">
    • <!ELEMENT name PUBLIC "hello" "網址">

XXE 攻擊

  • SSRF
    • <!ELEMENT name SYSTEM "http://127.0.0.1/hello.php">
  • RCE
    • <!ELEMENT name SYSTEM "expect://id">
  • 讀原始碼
    • <!ELEMENT name SYSTEM "php://filter/read=convert.base64- encode/resource=index.php">

防範方法

  • 關閉 DTD ( Data Type Definition )
    • 禁止外部實體的方法
    • 可讓解析器較安全
    • 降低 DOS 攻擊
  • libxml2
    • 解析 XML 函式庫
    • 設定
      • XML_PARSE_NOENT
      • XML_PARSE_DTDLOAD

上一篇
Web Security 魔法使攻略─不安全的 API
下一篇
Web Security 魔法使攻略─CRLF Injection
系列文
Web Security 魔法使攻略30

尚未有邦友留言

立即登入留言