這陣子網頁工程師最常碰到的問題應該是"你的網站有沒有做SQL Injection的處理"
因為最近SQL Injection實在是鬧的雞飛狗跳
其實這也不算是軟體的漏洞或是系統的問題
只要是寫程式一定都要再三小心
恩...
這陣子網頁工程師最常碰到的問題應該是"你的網站有沒有做SQL Injection的處理"
因為最近SQL Injection實在是鬧的雞飛狗跳
其實這也不算是軟體的漏洞或是系統的問題
只要是寫程式一定都要再三小心
只要是要送到資料庫執行的sql語句沒有好好處理的話 嘿嘿~
因為實在是有太多資料處理都需要連結到資料庫
當初cloudio在寫asp時第一次成功連結到access資料庫就開心的要命
"挖~可以新增 修改 刪除了 我真了不起"
還洋洋得意
那時還是用DW的精靈做的
大約是1年前的事...
之前cloudio的第一個程式設計師職務的第一個工作就是幫所有會帶到sql語句的值加上防止sql injection的function
因為公司的系統很大
是一個旅遊業ERP平台
asp程式大約有數百支之多
所以處理了整整一個月多
function還不是自己寫的...
常跑MSDN的asp,net程式設計師都知道用最近有文件指導怎麼應對sql injection
可是以前cloudio不知道
以為只要檔掉單引號就萬事OK了
可以安心睡覺去囉
現在回想起來真是膽顫心驚
就算處理掉單引號那些很基本的問題
後面還有一大堆參數型態錯誤可能導致程式掛點進一步暴露資料庫結構的安全性問題
當你全部都處理了再來還有XSS(Cross Site Scripting)的攻擊呢
如果在網站全部coding完時能有一個軟體幫我們檢測我們的網站有沒有漏洞有多好阿
cloudio分享一個好用的工具
要試用的人可以到這裡去註冊 下載來試用吧
下載回來後記得先更新
這樣才有新的攻擊腳本
不要拿著舊的攻擊腳本來做測試再來怪軟體抓不到新的攻擊手法
就像防毒軟體不更新病毒碼再來怪防毒軟體抓不到病毒(這樣比喻對嗎?)
都準備好了之後就開始測試吧
測試版本只能測試到XSS的漏洞
覺得好用請去購買完整版^^
測試的步驟如下
選取New Scan後出現這個畫面
輸入你要掃瞄的站台
這邊他會尋找所有的站台裡的連結來測試所有的頁面
所以只要設定首頁就好了
跳過3個步驟後來到login的步驟
如果你要測試的是需要login的網站的話就要在這邊設定登入者的資訊
一般cloudio都是第二個選項錄製登入步驟
再address輸入登入頁面的網址後按下OK開始錄製你的登入步驟
一般來說就是輸入你的登入帳號 密碼
下面方的畫面中成功登入後點選save後幫此sequence取一個名子
然後在回到精靈後的login sequence旁的下拉清單選取剛錄好的sequence
最後再進到下一步的finish按下Finish就開始掃瞄囉
掃瞄的步驟可能會多達數小時
時間取決於你要掃瞄的站台的程式多寡
最後你會得到一個
這樣的畫面
cloudio這邊是先到安裝資料夾下的Data\Samples去打開一個sample來給各位看
cloudio直接點開最近我們最關心的SQL Injection來看
可以發現AJAX/infoartlist.php程式有兩個參數有sql injection的問題
WVS在右邊有很貼心的說出此參數可以被輸入什麼值(例如畫面中的單引號之類的等等...)
還有問題的描述等
如果你再剛剛的設定精靈的最後一步有選取將結果存到資料庫(mdb)中的話
你還可以用WVS Reporter去開啟
只是這邊就需要完整版了
這邊有一點小地方要非常注意的就是
之前cloudio做測試的時候
有一次整個table的資料全部被砍光
大概是WVS再做測試時輸入了delete整個table的語法吧
還有就是WVS會塞入大量資料進資料庫中
所以要做測試的話最好是選在網站上線前
並且做好資料庫備份比較妥當^^