我在***過程中注意到的細節(二)

《***手冊200802》
我在***過程中注意到的細節(二)
lcx
上期我寫的基本都是在***內網過程中要注意到的細節,不過現在流行的畢竟是注入了。現在常規注入針對的也就是asp、php、jsp、cfm、 cgi等的動態腳本。針對各種腳本的話,如果注意一些細節,像構造特殊字符,也會起到很奇妙的作用。像最早的%5c暴庫、%00截斷都是轟動一時的漏洞。這些漏洞被發現,無非是發現都對腳本語言的一些細節的重視。那麼這一期我就來講一下我會在注入過程中注意到的一些細節,主要是講一些特殊符號了。

先來說一下perl吧。我對這門語言也不熟,畢竟市面上現在用它做server scripting少了。針對perl***大家最最常用的普遍手法估計也就是兩個,一個是想方設法向cgi文件裏寫入webshell,另一個就是利用原來的perl程序來執行命令。第一個方法,一般會寫入“;system @ARGV;#”這樣符號,如果寫在1.pl的話,可以執行1.pl?dir=c:\這樣去執行命令。另一個如果原來網頁url是[url]http://www.xxx.com/1.pl?id=abc[/url]的話,我們會嘗試執行[url]http://www.xxx.com/1.pl?id=abc[/url]|uname這樣的參數看一下能否來執行uname命令。其實|算是linux命令裏的分隔符了,不算是perl的。不過perl裏還有一個分隔符是,這個較少有人注意到。以前有一個很有名的雷傲論壇,好像在最新版裏還有一個可以上傳webshell的漏洞,如果沒有在後臺限制特殊符號註冊用戶帳號的話。好久好久前我***過一個雷傲論壇,當時***的截圖還在,如圖1所示。

圖1
我們註冊一個q lcx的帳戶,然後再發一個內容爲“ and rename(qq(你上傳的附件的物理路徑),qq(改名爲你要的webshell的物理路徑))”,示例就如圖1那樣的方法。然後再瀏覽貼子,你就可以得到一個webshell了。在這裏 爲分隔符,q在這裏是單引號的意思,qq當然是雙引號了,這樣一來q lcx…… 之間亂七八糟的內容就算是perl裏有意義的東東了,這樣不會影響到後邊的rename函數的執行。
那麼再來說一下php吧。php我最常用的就是暴路徑了。如果一個url是[url]http://www.sohu.com/x.php?id=1[/url],那我們改成[url]http://www.sohu.com/x.php?id[/url][]=1這樣的話來提交,如果錯誤沒有屏蔽的話,成功率應當高達60%吧,和早期的%5c差不多。這裏是因爲id後邊跟的一般是一個數值,如果我們改成[]的話,會讓程序本身誤以爲跟了一個數組,所以程序就支出錯,這和把id=1改成id=a或id=1′類似的意思,但是往往有的程序過慮的不嚴格,像只判斷了是否是字符和有單引號而遺漏了數組,從而讓我們得逞。php另一個雞肋式的符號是 `,這個東東也是執行符,像我們寫成<?$result=`$ls -a`;echo $result;?>,也會執行。不過只要服務器安全模式打開,或服務器權限設置的嚴格的話,不會讓我們得逞,不過我們能夠***成功的憑藉的運氣不也就是依靠的網管的懶惰嗎?
最後再來講一下大家能耳熟能詳的asp了。asp大家最瞭解的是%5c暴庫和’or”=’這個萬能密碼了。其實我以前用過%0d%0a,這個其實不算是asp裏的東東,可以算是http服務器裏的,多數http服務器在收到包含%0d%0a的請求時會解析爲回車並在日誌中換行。asp+mssql 我們可以用到它來做分隔符,使其多條sql語句執行。至於具體應用,網上有篇<<訊CMS4.0sp5 商業版的致命傷>>文章,大家可以百度一下看看。至於在http服務器中應用可以通過發送%0d%0a或%u0d0a在日誌中產生換行,從而可以僞造日誌,使
***行爲淹沒在大量虛假日誌中,難於找到真正的***者,給***分析帶來困難。 asp再有一個就是%號了,很多人以前都碰到過上傳或寫入webshell的時候碰到過濾了%號的情況,於是紛紛採用了冰狐浪子的cs***,因爲裏邊沒有百分號。其實asp還有一個寫法,是●<script language=vbs runat=server> ……代碼……</script>●這樣的,於是我們可以把我們平常的一句話代碼eval(request(”#”))加在裏邊,這樣就不用百分號了。
我對asp熟悉一點,再多說一點,<script language=vbs runat=server>eval(request(”#”))</script>再怎樣變形呢?我們可以寫成●< script language=vbs runat=server>eval(request(chr(35)))</script>●失之消去單引號。如果不加密的話,我們還可以怎樣改?我改一個給大家看一下,可以改成●<script language=vbs runat=server>eval(((((request(chr(35)))))))</script>●,我多加了四個匹配的括號,照樣可以運行的。還可以加更多嗎?當然……這裏的多加括號方法可以運用在php一句話***裏嗎?親愛的讀者,剩下的工作就交給你去做了。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章