• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      談校園網(wǎng)管理之ASP程序防注入方法

      2007-12-29 00:00:00張嘉勇
      中小學(xué)信息技術(shù)教育 2007年11期


        學(xué)校校園網(wǎng)的穩(wěn)定和發(fā)展與使用的管理軟件是分不開的。由于ASP語言簡單易學(xué),入門門檻不高,所以校園網(wǎng)管理人員往往都使用ASP語言,采用B/S模式來開放校園網(wǎng)的程序。但同時由于設(shè)計人員的水平參差不齊,以致相當(dāng)一部分ASP代碼存在安全隱患,導(dǎo)致網(wǎng)站常出現(xiàn)數(shù)據(jù)丟失、被修改等現(xiàn)象。筆者長期進(jìn)行學(xué)校網(wǎng)站維護(hù),發(fā)現(xiàn)大量這類問題,其大部分原因是ASP注入導(dǎo)致。本文就校園網(wǎng)出現(xiàn)ASP程序注入后的危害及判斷處理方法做了講解,相信對校園網(wǎng)的管理能起到一定的輔助作用。
        
        一、ASP注入概述
        
        ASP程序沒有對用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,使應(yīng)用程序存在安全隱患,主要表現(xiàn)在惡意用戶可以在正常提交數(shù)據(jù)時,附帶提交一段代碼,以達(dá)到獲得、修改或刪除某些數(shù)據(jù)庫中的數(shù)據(jù)的目的,這就是所謂的ASP Injection,即ASP注入。由于ASP注入是從正常的HTTP(80)端口訪問,而且表面看起來跟一般的Web頁面訪問沒什么區(qū)別,所以目前市面的防火墻都不會對ASP注入發(fā)出警報。如果管理員沒有查看IIS日志的習(xí)慣,可能被入侵很長時間都不會發(fā)覺。例如出現(xiàn)這樣的現(xiàn)象:經(jīng)常發(fā)現(xiàn)有人登錄校園網(wǎng)更改網(wǎng)站的數(shù)據(jù),管理員修改了密碼也沒有用。筆者發(fā)現(xiàn),在這種情況下,網(wǎng)站的用戶名和密碼測試的代碼(頁面login.asp)為如下所示:
        userName = request("userName")
        passWord = request("passWord")
        sqlStr="SELECT*FROM adminWHERE userName ='" & userName & "' and passWord = '" & passWord & "'"
        set rs=conn.execute(sqlstr)
        這段代碼的原理是先輸入用戶名和密碼,再根據(jù)輸入的用戶名、密碼到數(shù)據(jù)表admin中尋找是否存在該合法的用戶,如果沒有,rs為空,如果有,rs就不為空。隨后,程序根據(jù)rs的狀態(tài)控制是否進(jìn)入管理頁面。這段代碼看上去沒有什么問題,但是當(dāng)用戶輸入的用戶名是a,密碼是a'or'true時,sqlStr就變成了select * from admin where userName = 'a' andpassWord = 'a'or 'true'。因為其中被注入了or'true',所以由conn執(zhí)行得到的rs肯定不會是eof,下面的程序就會認(rèn)為一個合法用戶登錄成功了,這就是這個漏洞的基本原理。由于ASP的參數(shù)可以從IE地址欄中直接提交,所以ASP注入的手法相當(dāng)靈活,注入的方法也很多。
        
        二、判斷ASP注入惡意攻擊的方法
        
        ASP注入是通過附加一些代碼來實現(xiàn)的,可以在數(shù)據(jù)提交處理之前,先做一個判斷,檢測提交的數(shù)據(jù)是否是合法有效的數(shù)據(jù),如果是合法的,再處理請求。筆者認(rèn)真分析發(fā)現(xiàn)以下數(shù)據(jù)非合法的嫌疑性比較大,現(xiàn)整理如下:"'、and、exec、insert、select、delete、update、count、*、%、chr、mid、master、truncate、char、declare 。那么我們只要判斷提交的數(shù)據(jù)里面是否包含上述數(shù)據(jù),就可以大體上判斷是否有ASP惡意攻擊的情況發(fā)生。ASP中采用FORM提交數(shù)據(jù)有兩種方式,分別是get和post。基于上述兩種情況,處理數(shù)據(jù)前,首先筆者分別遍歷提交上來的數(shù)據(jù)的合法性,如果出錯,不再處理,就可以排除ASP注入的危險性。主要代碼如下。
       ?。?‘判斷get提交的數(shù)據(jù),如果含有嫌疑的字符退出
        dim asp_injdata
        asp_injdata = "'|and|exec|insert|select| delete|update|count|*|%|chr|mid|master|truncate| char|declare"
        asp_inj = split(asp_injd

      皮山县| 营山县| 揭西县| 龙陵县| 栾川县| 邵武市| 通化市| 通河县| 澄迈县| 高唐县| 潮安县| 湘潭县| 扎鲁特旗| 翁牛特旗| 图们市| 城固县| 石城县| 泰州市| 子洲县| 扎赉特旗| 新化县| 合肥市| 锦州市| 利川市| 肥城市| 南华县| SHOW| 安福县| 阿荣旗| 石渠县| 奇台县| 富川| 明溪县| 方山县| 巴青县| 赣州市| 烟台市| 凉山| 潍坊市| 弥勒县| 蕲春县|