使用$ _SERVER ['PHP_SELF']时的PHP XSS命令

时间:2017-01-20 04:36:49

标签: php xss

可以找到原始示例here

摘要

表单元素:

<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">

某人在浏览器地址栏中输入了一段恶意代码:http://www.example.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E

该示例声明表单元素将转换为以下内容:

<form method="post" action="test_form.php/"><script>alert('hacked')</script>

虽然我明白了,但我不明白为什么

  1. 当网址不存在时,这甚至可以使用。不能 那个人得到一个错误的页面,说该网站 无法找到?就像我们不小心输错了一样 地址,什么也没得到?
  2. 即使它有效,除了“黑客”之外其他人怎么样? 如果更改未保存在php文件上,则自己会受到影响 服务器?我的意思是黑客手动输入恶意内容 代码,他的浏览器将下载受影响的网站 页。
  3. 我一定有一些错误的概念。请指正。感谢

1 个答案:

答案 0 :(得分:2)

  

当网址不存在时,这甚至可以正常工作。那个人不应该得到某种错误页面说无法找到该网站吗?就像我们不小心输入错误的地址而什么都没有?

如果Web服务器配置为在脚本路径之后允许额外数据,则不会。在Apache中,这是由AcceptPathInfo Directive配置的。

  

即使它有效,除了&#34; hacker&#34;之外的其他人怎么样?如果更改未保存在服务器上的php文件中,他自己会受到影响吗?我的意思是黑客手动输入恶意代码,他的浏览器会下载受影响的网页。

XSS攻击需要攻击者让目标访问此URL,以便恶意有效负载在目标浏览器中运行。一种方法是欺骗目标点击恶意链接。