操作說明/查詢密碼 


            
關於服務中心
設計網站版面
加入自定網頁
公告系統
諮詢討論
相關網站
訪客

IP:3.235.107.209
 


今日:14 人
昨日:31 人
訪客總數:107584

奇萊網服務中心 首頁 / 諮詢討論 / 資料庫管理:出現了 D99_TMP 或 這樣類似的表格?
資料庫管理:出現了 D99_TMP 或 這樣類似的表格? 回應
若你的資料庫中出現了 D99_TMP 或 這樣類似的表格, 可看我的文章
先暫時把表格刪除, 等到下次再發現時, 看建立時間是多少 , 再去從 WEB LOG 找該時間差不多的地方, 看是由哪些來的, 對你的程式下了什麼樣的指令, 接著一下要對著你的程式做處理, 下次如果還是有看到類似的表格, 再檢查你的LOG , 看是不是還有哪些程式沒寫好,修改完即可
其它: 這些來源皆由北京電信來的, 如果您不是做中國的生意, 我個人是建議全部擋掉


重點在於 ASP + MSSQL 的 IIS 網站 是多數個人或中小型企業的選擇,也可能是大家第一次接觸到的類型網站

不管是新作或是接手, 其重點在於如何防範

到目前為止尚未能得到證實的是如果你寫下一個程式,而且沒有其它連結連到這個程式時, 是否有可能被其它人執行到, 但所遇到的是 沒有人知道有這樣的程式, 不知是沒法被猜知, 或是有能力者根本就沒來此網站

因此在顯而易見的首頁或可連結的地方掛上管理者登入等字眼是非常不明智的

那麼駭客將要的是不再是此類不易取得的,而你是提供的程式

在此討論的是防止駭客任意使用你的MSSQL

sa : 密碼最好加入中文字,或其它雙位元字碼, 一般簡易(ASCII), 可能使得 它人以字典方式取得

可供查詢,提供單一只可查詢的帳號, 可修改則以其它帳號

有些人為了開發方便, 便以 sa 一路到底, 因此在此提供一些技巧

/show.asp?id=33 假設 這樣的程式將會以

SELECT * FROM table_name where ID = '" & Request.Querystring("id") & "'"

那麼這將會是很好的注入點

以簡單檢測 /show.asp?id=33'%20OR%20'1'='1

Request.Querystring("id") 將會是 33'%20OR%20'1'='1 其中 %20就是空白的意思

那整段 SQL Query 將會是

SELECT * FROM table_name where ID = '33' OR '1'='1'

如果顯示出來的不是 ID='33'的資料而是其它的那便是有問題的程式了

因此為求解決方式

1. 若已知變數為哪種長度或類型, 將不屬於其範圍著去除

2. 不知變數為哪種類型或長度, 只針對取得的變數用關鍵字將其去除或替換

如果 SELECT * FROM table_name where ID = '" & Replace(Request.Querystring("id"),"'","") & "'"

將變成 SELECT * FROM table_name where ID = '33 OR 1 =1' 這樣便會出錯

那有時可能不是這樣,或使用了其它的方法,因此

使用 關鍵字若是 DROP CREATE SELECT INSERT 等等不該出現的字串, 那麼減少被駭客機會大增

開啟 IIS 的 LOG 日誌, 檢查每條 URI , 若有不正常的 QUERY , 再針對該程式做 修改, 那麼下列這樣的程式被注入的問題就不會再出現, 而其它的程式是否有問題, 也端看駭客們是否有發覺到其它的程式也有相同的問題,這樣大概被駭的機率大減

有些人會針對將QUERY加入了其它的字串,有如上面的例子, 若有則顯示 錯誤頁面, 這樣各位可以當做一個參考


資料來源:http://blog.blueshop.com.tw/dapu/archive/2006/11/01/44102.aspx
--本文最後於2007/12/6 上午 11:09:40由召集人修改--
2007/12/6 AM 10:36:17


張鑫聖





奇萊網服務中心&SKY奇萊網2010@All Right Reserved ,