作者ZanFu5566 (仁甫56 優質56 清新56)
看板HCHS60309
標題SQL INJECTION AND XSS ATTACK
時間Sat Jun 12 03:41:08 2010
今天就來說說有關於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