如何利用$_SERVER["PHP_SELF"]变量植入script代码?

Posted loanhicks

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用$_SERVER["PHP_SELF"]变量植入script代码?相关的知识,希望对你有一定的参考价值。

假如我们是黑客,可以诱骗用户访问如下链接,

相当于用户会在浏览器地址栏中输入以下地址:

http://www.xxx.com/test_form.php/%22%3E%3Cscript%3Ealert(\'hacked\')%3C/script%3E
这里文件名后的字符是URL encode characters,其等效于
<form method="post" action="test_form.php/"><script>alert(\'hacked\')</script>

在这个页面中我们设置一个表单,表单的设置如下:
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">

当用户提交表单后(表单也可以为空,这样直接执行了),数据交给action指定的文件也就是当前的页面文件,并执行了后面的javascript脚本代码(由browser自动执行)
<form method="post" action="test_form.php/"><script>alert(\'hacked\')</script>

后面的脚本任何JavaScript代码可以添加在<script>标签中! 黑客可以利用这点重定向页面到另外一台服务器的页面上,页面 代码文件中可以保护恶意代码,代码可以修改全局变量或者获取用户的表单数据。
例如,可用如下脚本重定向页面<script>location.href(\'http://www.xxx.com\')</script>



实际动手如下:我们编号含有以上要求的表单文件在index.php中,本地访问(已经搭好了apache服务器)
http://localhost/phptest/index.php/%22%3E%3Cscript%3Ealert(\'hacked\')%3C/script%3E

在Edge中效果:

然后显示:

 

在chrome中效果

 

 
 

以上是关于如何利用$_SERVER["PHP_SELF"]变量植入script代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何避免 $_SERVER["PHP_SELF"] 被利用?

使用ajax将表单提交给php而不刷新页面

利用Python的Django框架制作网页时,网页设置的图片不显示,如何解决?部分代码如下:

请问php如何判断该浏览器是否微信浏览器呢

JSP 或 JavaScript 等价于 PHP 的 $_SERVER["HTTP_HOST"]?

为啥 $_SERVER["REMOTE_ADDR"] 显示的 IP 与我的外部 IP 不同? [复制]