都用的是php寫的源碼?
第一 PHP語(yǔ)言本身漏洞相當(dāng)多,尤其是很多人不喜歡用最新版本,現(xiàn)在PHP8都發(fā)布了,現(xiàn)在竟然還有一大批人用PHP5.2, 越早的版本漏洞越多。 漏洞多自然就好做滲透。
第二 PHP web框架漏洞也非常多。 國(guó)內(nèi)最常用的PHP框架 thinkphp經(jīng)常爆出各種嚴(yán)重漏洞,比如5.x的遠(yuǎn)程可執(zhí)行命令漏洞,導(dǎo)致大量使用此框架的網(wǎng)站中招。 這個(gè)漏洞利用之容易,做個(gè)程序可以隨便感染一大批網(wǎng)站。 有的人利用這個(gè)漏洞拿到的肉雞多到自己都數(shù)不過來。
反觀Java web, 大多數(shù)人都會(huì)用sprint 全家桶。 而Spring MVC 和Spring security提供的安全認(rèn)證,起安全性都是非常強(qiáng)的。
雖然Spring也出一些漏洞,但是我印象中還沒有出過非常容易利用,非常簡(jiǎn)單就能拿到最高權(quán)限的傻瓜式漏洞。
第三 網(wǎng)上劣質(zhì)php源碼最多。 很多人是根本不具備獨(dú)立編程能力的,這些所謂的“程序員”最喜歡干的事是去網(wǎng)上下載各種免費(fèi)源碼,然后改吧改吧就算自己做了網(wǎng)站了。
這種免費(fèi)源碼,以PHP居多。什么的dede CMS,什么xxshop,xxmall,微盟, 這里垃圾PHP源碼簡(jiǎn)直是千瘡百孔,漏洞百出??梢哉f是黑客們的最愛。 用這類垃圾源碼最的網(wǎng)站,隨便一個(gè)中學(xué)生搗鼓搗鼓就能入侵, 簡(jiǎn)直和裸奔沒啥區(qū)別。
同時(shí),會(huì)用這些垃圾代碼做網(wǎng)站的程序員,一般水平都不會(huì)太高,按理說連編程入門都算不上。這些所謂程序自然根本無(wú)法做到防止黑客入侵。
第四 很多人安全意識(shí)太差。 不管你用什么語(yǔ)言做網(wǎng)站,大多都要在網(wǎng)站程序外在跑一個(gè)Nginx,apache,或者IIS。 即使使用Java, Nginx 做反向代理+靜態(tài)處理,后面再加tomcat的構(gòu)架也很多。
凡是,很多人要么是技術(shù)不到位,要么是偷懶,不去自己編譯tomcat或者apache,而是用網(wǎng)上現(xiàn)成的的一鍵安裝包或者傻瓜安裝程序。這些程序可能會(huì)默認(rèn)安裝PHP支持。
也就是說,一些安全意識(shí)不強(qiáng)或者水平比較差的程序員編寫的java web 很有可能也會(huì)支持PHP。
很多人在入侵提權(quán)的時(shí)候,不管你是什么網(wǎng)站,都會(huì)先試一下PHP能不能執(zhí)行,入侵幾率比較高。
關(guān)于最后一個(gè)問題, 如果你找到了Java web的漏洞,可以上傳文件了, 下一步要做的就是提權(quán)。這個(gè)時(shí)候你直接上傳Java源代碼是沒有用的。 php是動(dòng)態(tài)執(zhí)行的,源碼可以直接被執(zhí)行,而Java則需要編譯。
拿到上傳權(quán)限后想提權(quán),就必須先弄清楚對(duì)方服務(wù)器的jre版本,然后再本地用相應(yīng)的版本編譯后,再把jar包傳上去,才能夠執(zhí)行。
這里還有一個(gè)不同,一般php提權(quán),只需要拿到網(wǎng)站根目錄的上傳權(quán)限即可。 但是Java web 很有可能網(wǎng)站的根目錄,和存放可執(zhí)行jar包的目錄不是一個(gè)目錄,想要執(zhí)行Java代碼,你就必須想法拿到j(luò)ar包所在目錄的上傳權(quán)限(同時(shí)也要拿到網(wǎng)站根目錄權(quán)限),這是一個(gè)難點(diǎn)。