以阶段分析为基础之SQLInjection防御系统ppt课件

上传人:仙*** 文档编号:187380680 上传时间:2023-02-13 格式:PPT 页数:24 大小:1.14MB
返回 下载 相关 举报
以阶段分析为基础之SQLInjection防御系统ppt课件_第1页
第1页 / 共24页
以阶段分析为基础之SQLInjection防御系统ppt课件_第2页
第2页 / 共24页
以阶段分析为基础之SQLInjection防御系统ppt课件_第3页
第3页 / 共24页
点击查看更多>>
资源描述
指導教授:鄭錦楸報告人:魏宏吉版權聲明:本報告僅运用在學校報告與練習之用,並無其他用途,假设有侵權問題,煩請告知!1.研讨目的2.何謂SQL Injection攻擊3.研讨動機4.研讨方法5.預計完成的任务項目隨著網際網路的蓬勃發展,網頁也越來越多元化,現今網頁已與資料庫脫離不了關係。根據OWASP的統計報告表示,2019年十大網路風險排名,SQL Injection已經成為排行榜上的第一名,這樣表示,網頁資料庫的平安性越來越重要了。資料來源:OWASP攻擊者透過網頁應用程式所提供的輸入欄位來輸入攻擊字串來破壞原有的SQL語句結構,以及執行攻擊者輸入的指令,來達到對資料庫內容進行查詢、新增、修正、刪除,甚至破壞整個資料庫。SQL攻擊者常用的SQL指令有:Select、Where、having、Group by、Like普通輸入帳號密碼的網站的SQL語法select*from 會員 where 身分證=&request(uid)&And 會員密碼=&request(pw)&假设正常运用者帳號 A123456789,密碼 1234select*from 會員 where 身分證=A123456789 And 會員密碼=1234 輸入的帳號與密碼等資訊會取代ASP(or PHP、JSP)中的變數,並由兩個單引號()所包住假設攻擊者知系統中存在一個A123456789的帳號,但攻擊者不知其密碼,不過攻擊者還是可以运用SQL Injection的方式跳過密碼的驗證,而進入到系統。攻擊者只需在身分證的欄位輸入 A123456789-即可不須輸入密碼而進入到系統。大部分的程式設計師都沒有資訊平安的概念,往往忽略了程式的平安性。因此我們想開發一套SQL Injection攻擊防禦系統,讓程式設計師不用擔心本人撰寫的程式能否易遭遭到駭客的SQL Injection攻擊,如此一來,程式設計師只需專心賺寫程式即可。我們提出一個架構來實作SQL Injection的防禦系統,此架構分成三個階段以及四個模組。系統架構圖三個階段1.資料建置階段2.權限配置階段3.SQL語句驗證階段四個模組1.權限配對模組2.語句分離模組3.輸入內容驗證模組4.SQL語句驗證模組在資料建置階段,我們會將每一位运用者能使用的SQL語句定義在比對列表內,且還會將运用者不可以輸入的語句定義在資料集內。權限列表資料表伺服器欲與資料庫做連線時,會發送一個登入需求封包給資料庫,需求內容封包含有帳號、密碼及資料庫名稱。在此階段,需求登入封包會先被權限配對模組攔截,權限配對模組會分析需求封包的內容,並與權限列表做比對,找出該帳號能运用的SQL語句,將其結果傳送給語句分離模組。這此階段,當網頁伺服器送出SQL語句要存取資料庫時,會先經過架構驗證模組的驗證,架構驗證模組會运用Needleman-Wunsch演算法來將SQL語句內,运用者輸入的字串分離出來。(一)產生一個矩陣1.定義正常SQL語句:A=a1a2aN,且長度Len(A)=N2.定義含有运用者輸入SQL語句:B=b1b2bM,且長度Len(B)=M3.定義最長共同子序列(Longest Common Subsequence)的矩陣:LCS(j,k)=LCS(a1a2aj,b1b2bk)其中0 j N,0 k M4.假设矩陣aj=bk,則LCS(j,k)=LCS(j-1,k-1)+1,但假设是ajbk,則LCS(j,k)=Max(LCS(j-1,k-1),LCS(j-1,j),LCS(j,k-1)(二)回溯矩陣,找出兩個語句相異的部分 定位在矩陣最右下角那一格,假设aj=bk,則回溯到左上角單元格假设ajbk,回溯到左上、上、左邊的值為最大的單元格,假设有最大值一样的情形,則其優先級按照左上角、上面、左邊的順序,直到回溯至矩陣的左上角為止。假設有兩個SQL語句:含运用者輸入的語句select *from user where id =ken and pw =xyz 防禦系統設定的合法語句select *from user where lo =and pw =為了整個表達可以完好的被呈現,所以我們把一些符號做了簡化的動作 S=select,F=from,W=where 語句相異部份 語句相同部份 S S *F F u u s s e e r r W W i i d d =k k e e n n a a n n d d p p w w =x x y y z z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S S 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1*0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 F F 0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 u u 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 s s 0 1 2 3 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 e e 0 1 2 3 4 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 r r 0 1 2 3 4 5 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 W W 0 1 2 3 4 5 6 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 i i 0 1 2 3 4 5 6 7 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 d d 0 1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10=0 1 2 3 4 5 6 7 8 9 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 12 13 14 14 14 14 14 14 14 14 14 14 14 14 14 a a 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 12 13 14 15 15 15 15 15 15 15 15 15 15 15 15 n n 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 13 13 14 15 16 16 16 16 16 16 16 16 16 16 16 d d 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 13 13 14 15 16 17 17 17 17 17 17 17 17 17 17 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 13 13 14 15 16 17 18 18 18 18 18 18 18 18 18 p p 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 13 13 14 15 16 17 18 19 19 19 19 19 19 19 19 w w 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 13 13 14 15 16 17 18 19 20 20 20 20 20 20 20=0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 13 13 14 15 16 17 18 19 20 21 21 21 21 21 21 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 13 14 14 15 16 17 18 19 20 21 22 22 22 22 22 0 1 2 3 4 5 6 7 8 9 10 11 12 12 12 13 14 15 15 16 17 18 19 20 21 21 22 22 22 23 當运用者輸入的字串被分離出來之後,我們會將运用者輸入的字串傳送至輸入內容驗證模組去判斷能否合法。假设判斷為合法,則回傳Successful的訊息給SQL語句驗證模組,否則傳回Failure。运用Snort Inline來實作SQL語句驗證模組。合法的SQL語句非法的SQL語句本計畫將被劃成三個階段來執行,以下將明確定義階段時間與任务內容:1.前置作業階段期間:2019/10/012019/11/01任务產品:蒐集一切的SQL Injection語法、其他文件製作2.系統建置階段期間:2019/11/012019/09/01任务產品:主系統、規則資料庫、SQL語句驗證系統3.系統測試階段期間:2019/09/012019/10/01任务產品:系統測試、測試報告撰寫
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!