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