看板 HCHS60309 關於我們 聯絡資訊
今天就來說說有關於SQL INJECTION跟XSS ATTACK 相信資工的同學都知道這兩個 不過還是解釋一下 所謂的SQL 就是Structured Query Language 結構化的查詢語言 跟資料庫結合 通常我們需要大量資料的儲存以及查詢 或是運算 都是用這種語言 網路上的投票系統也是 跟PHP 或是ASP結合 以投票系統舉例 本班最帥 一號 BILLY 投 二號 MARK 投 三號 HANK 投 當你按下投的時候其實他是 把你的IP記錄下來 然後把你的TABLE裡面的票數+1 好 這種是最簡單的網路投票 通常檢查的本日IP是否有重複 所以是不是只要跳過檢察IP的程序就能夠重複投呢 沒錯 www.xxxxx.com.tw/vote.php 這是投票網址 當你按下投票會轉到另一個 www.xxxxx.com.tw/votecheck.php?vote_id='1' and vote=true 然後會傳入你的ip到votecheck.php裡面去做檢查 現在開始SQL INJECTION 所謂的SQL INJECTION 我們都知道再怎樣強的程式都繪有BUG 而且BUG是DE不完的 你想像一下 如果你輸入學號的框框 你突然輸入一段"所謂的程式語言" 會發生什麼事情呢? 通常SQL INJECTION只能運作在TEXTBOX上 這個目的就是去竊取資料庫裡面的檔案 以及做破壞性的更動 一個大的資料庫每天流量太大了 很難去TRACK SINGLE INJECTION 所以這很難抓 通常我們會用以下的步驟 1.輸入'; AND OR 去看看是否可以成功注入 如果可以 2.輸入' or 1=1-- 去遮蔽密碼欄位 或是任何的檢查 ' or 1=1--這意思就是 把你的輸入的 跟 1=1 做or ,--會把後面的當註解 所以任何東西or 1=1 都是true 理當登入 3. ' having 1=1-- 去看你所要的表格名稱 4. ';DECLARE @str VARCHAR(8000) SET @str='@' SELECT @str=@str+'*'+XXXXX+'/'+XX+'/'+XX+'*' FROM XXX where cname="XXX" SELECT @str AS rd INTO TMP_SYS_TMP-- 創造一個表格把你要的屬性欄位都複製過去 5.' OR 1=CAST((SELECT TOP 1 SUBSTRING(rd,1,360) FROM TMP_SYS_TMP) AS Int)-- 把你要的資料查詢出來 這個是利用資料庫會不當的把錯誤訊息列出的原因 我們的目的就是把所要的資料讓資料庫自己列在錯誤訊息裡面 其實這是資料庫開的全線太大 所以才會發生這種事情@@ ----------------------------- 這些都可以透過程式完成 你需要的是C# webrequest. 今天說到這 ㄎㄎ 下一個. hank -- ◢███◣ ◢██~5566的好,推娃四天王知道~ █◥◥◥◢██◣ ◤ ˋˊ瓦哥/鄭公/鯰姐/柏油真情推薦 ⊙ ⊙◢████◣ —⊙-⊙—最潮的您還在等甚麼? 快來加入最夯的五六大家庭! ◤ ◥───◣ ︶◢ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.35.61 ※ 編輯: ZanFu5566 來自: 118.169.35.61 (06/12 03:41)
hank52078:真是悲劇 看不懂 06/12 12:27
specraft5032:第二句話就錯了 06/12 15:14
hank52078:我只看懂到步驟2 XDDD 06/12 17:03
benjamin7710:屌哥! 有看沒有懂... 06/12 22:41
specraft5032:說到這GOOGLE的問券系統沒有檢查IP 06/12 22:55