fanfan480 发表于 2023-10-4 17:57:22

为什么被渗透的网站大多是 PHP 开发的?

最近对渗透/网络安全比较有兴趣, 不过看过很多分享的案例都是 PHP 开发的网站. 所以我想请教各位, 哪里能找到 JAVA/Python 等渗透案例? 如果我想继续研究网络安全, 有必要学学 PHP 吗?

qaz8888 发表于 2023-10-4 17:57:41

有几个原因吧。

[*]PHP简单,开源CMS多,搭建方便,成本很低,一台机器可以运行上百个网站,做SEO、站群必备。然而黑产也钟爱此类站点,所以被渗透的多。
[*]历史包袱重,导致PHP的确有很多不安全的特性,虽说这些年已经改进了很多了。但这也体现出PHP的生命力,同样有历史包袱的asp、cgi等开发方式都已经几乎绝迹了,但PHP仍然占有很大的市场
其实,你要说这些年,哪个语言相关的东西出的漏洞更多,我反而觉得是Java。
仔细思考一下你会发现,PHP相关CMS出现的安全问题,大部分是开发者的问题,PHP这门语言本身问题就那么些,这些年已经慢慢都废弃了。
而Java,反序列化、JNDI注入等等,这些都是Java这门语言自身的设计问题(当然这些年Java也在慢慢改进),有时候你即使按照开发规范开发,也可能会出现严重的安全漏洞。
PHP这些年废弃了哪些不好的特性?可以参考我的这篇帖子:https://t.zsxq.com/AImEiaY

[*]移除不支持SQL预编译的Mysql扩展:mysql
[*]移除preg_replace中容易导致代码执行漏洞的正则模式:e
[*]assert从一个函数变成一个语法结构(类似eval,无法再动态调用。至此,大量PHP一句话木马将失效),7.2中废弃字符串形式的参数
[*]hex字符串(如0xf4c3b00c)不再被作为数字,is_numeric也不再认可,可见 https://3v4l.org/ORuc7
[*]7.2中废弃可以动态执行字符串的 create_function
[*]7.2中废弃容易导致变量覆盖的无第二个参数的parse_str
[*]移除<script language="php">和<%,这两种另类的PHP标签
[*]移除dl函数
<hr/>我在知乎科普一些简单的信息安全常识,如果想学习更硬核的知识,欢迎关注我的公众号:white-hat-note

nana00101 发表于 2023-10-4 17:58:03

ASP时代漏洞更多呢。PHP确实流行,特别是lamp lnmp 宝塔面板等等配套齐全,加上各种CMS满天飞,架设网站的门槛非常低。开发者维护者的水平都参差不齐,而像wp dedecms drapal 这种超流行的CMS和像tp之类的框架往往都是千万级别的装机量,一旦出了个漏洞就是全网受影响。

lfz3999 发表于 2023-10-4 17:58:16

这个问题就跟问“为什么Windows系统是被攻击最多的系统?”一样。
先回答标题的内容,很简单,因为用户群最多。
大家可以看一下用PHP搭建的网站个数:PHP 全球统计 - FOFA网络空间测绘系统
再看看JSP搭建的网站个数:JSP 全球统计 - FOFA网络空间测绘系统
再看看ASP搭建的网站个数:ASP 全球统计 - FOFA网络空间测绘系统

如果你想继续研究网络安全,你非但要学PHP,必要时你可能还要学习JAVA,Ruby,Python……因为他们都有漏洞,或者漏洞分析利用的工具都是这些开发的,突然一天你的任务就是研究他们。
你逃不掉的,网络安全是一门极其综合性的学科,你什么都要懂一点,遇到具体问题再突击研究深入一点。提前做好这个心理准备,放心,远没有你想的那么难,先浅尝辄止。

xiaozao 发表于 2023-10-4 17:58:29

不得不承认PHP的上手门槛和易用性,确实是目前存活语言中最好的,既然用的人多、流通性最大那么熟悉他的人也自然最多,问题自然也最多,因为足够“开放”、“透明”分析起来就更容易这很正常。
就像win系统和macOS比哪个问题多?安卓和iOS哪个问题多?
很多时候开放并不是什么好事情,理论上暴露的面越大,可被攻击的点就更多。
很多语言并不代表它没漏洞,因为语言特性可能不会有和PHP一样的漏洞,但是同样会有别的漏洞存在,但熟悉这门语言的人足够少,能挖它漏洞的人就跟着少,暴露的问题在这个阶段就不会那么多,但未来几年可能就不会这样了。
最终这些漏洞其实和语言无关,问题的产生是人,你让入门级又没工程师思维的小白去写python和go,出来的产品安全问题也不会少哪去。

wangbo821 发表于 2023-10-4 17:59:05

不是,这问题也有必要装瞎吗?
哪种语言最容易被web shell的方式渗透进去?

[*]不常驻内存,所以动不动要往文件系统里写个文件来暂存数据,甚至语言上就不支持流式处理上传附件的
[*]往网站目录里写个文件立即就能当脚本执行的
[*]小白用户多,不知道要配数据目录和脚本目录权限隔离的(或者不会配)
那除了PHP还能是什么?ASP早没人用了。
再扩展些,哪种web语言最容易被SQL注入?

[*]没有或者不常用ORM框架,很长时间没有prepared statement的支持,escape函数在多字节字符集上还是broken的
哪种web语言最容易被XSS攻击?

[*]前后端不分离,模板引擎默认没有特殊字符escape的
说的又是谁?
页: [1]
查看完整版本: 为什么被渗透的网站大多是 PHP 开发的?