csrf attack
Post on 22-Apr-2015
272 Views
Preview:
DESCRIPTION
TRANSCRIPT
Cross Site Request Forgery
資安專題:跨站請求偽造
攻擊手法簡介
What is CSRF?
WHAT IS CSRF?
• 也被稱為 XSRF, on click attack / session riding
• Cross Site Reference Forgery
• 藉由使用者登入合法網站,誘導使用者點擊帶有攻擊碼的頁面。
• 藏有惡意 HTML / JavaScript 語法的頁面。
• 亦可能直接或間接的利用 XSS 的漏洞。
• CSRF是利用使用者所相信的合法網站
• XSS則是利用被 client 端信任的 application or website.
• 也曾利用輕量級標記語言做隱碼攻擊
• Lightweight markup language, like markdown, BBCode, JsonML, MakeDoc…etc.
攻防說明
攻擊流程
情境––GET REQUEST
• 線上點數交易網站A,以 GET Request 完成消費扣款的操作…
• 消費扣款網址:
•
• 危險網站X 的 CSRF攻擊:
http://www.tosCard.com/Buy.php?UID=5566&money=1000
情境––POST REQUEST
• 線上點數交易網站A,為防 CSRF 攻擊,改以 POST Request 操作。
• 消費扣款網站:
•
危險網站X 的 CSRF攻擊(again)
Hint: PHP的 $_REQUEST ….
• Quote: 「The variables in $_REQUEST are provided to the script
via the GET, POST, and COOKIE input mechanisms and therefore
could be modified by the remote user and cannot be trusted.」 ––
http://www.php.net/
• $_REQUEST 預設可以通吃 GET, POST, COOKIE (甚至是$_SERVER)
5.2版之前
情境––POST REQUEST ONLY
• 線上點數交易網站A,為防 CSRF 攻擊,改以 $_POST (post request only) 操作。
• 消費扣款網站:
•
隱碼跟著進化….
小結––
• CSRF的攻擊源於 WEB 的隱式身份驗證機制
• Web 身份驗證機制可以保證 request 來自使用者的瀏覽器,但卻無法保證request 是被使用者核可的。
• 當使用者進行以下行為,就有可能受到 CSRF攻擊:
• 登入正常的網站A,在 local 端產生 cookie
• 未登出網站A的情況下,瀏覽有問題的網站X。
CSRF的防禦––
• Server side
1. Cookie Hashing
2. 驗證碼
3. One-Time Tokens
• Client side
Let’s try it.
實例
Question?
References––
• http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
• http://www.dotblogs.com.tw/joysdw12/archive/2013/09/16/asp-net-cross-site-request-
forgery.aspx
• http://www.cgisecurity.com/csrf-faq.html
• http://www.php.net/
• http://www.gpx.idv.tw/line_stic/details.php?s=539
• And other pics in google search engine.
top related