[实验案例]有$_SERVER['PHP_SELF']的php页面中,XSS跨站脚本的利用与防范

测试目的:通过模拟构造XSS跨站脚本攻击,了解PHP表单安全的重要性

操作流程

1.如何利用$_SERVER['PHP_SELF']变量的弱防护嵌入XSS脚本到客户端

预置条件:在网站服务器中有一个名字是“test.php”的页面,其中存在以下表单

[实验案例]有$_SERVER['PHP_SELF']的php页面中,XSS跨站脚本的利用与防范_第1张图片

$_SERVER["PHP_SELF"]: 是一种超全局变量,它返回当前执行脚本的文件名

1)正常情况下浏览器地址栏中的URL请求访问

当在浏览器中输入URL:http://localhost/test.php 访问后返回的页面如下:

以上URL访问后的客户端代码转换为:

[实验案例]有$_SERVER['PHP_SELF']的php页面中,XSS跨站脚本的利用与防范_第2张图片

2构造带有XSS脚本的URL地址请求请问

当浏览器输入编码过的URL:http://localhost/test.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E 

等效于

访问返回的页面为:

[实验案例]有$_SERVER['PHP_SELF']的php页面中,XSS跨站脚本的利用与防范_第3张图片

以上是在Firefox浏览器中访问之后,已自动将url解码并执行脚本

查看客户端的代码转换为:

[实验案例]有$_SERVER['PHP_SELF']的php页面中,XSS跨站脚本的利用与防范_第4张图片

标签中可添加其他可能产生危害or敏感信息泄露的XSS脚本,比如:标签中可添加其他可能产生危害or敏感信息泄露的XSS脚本,比如:

2.如何增强$_SERVER['PHP_SELF']的防护,避免被利用进行XSS攻击

使用htmlspecialchars()函数配合$_SERVER['PHP_SELF']变量

将网站服务器上的文件“test.php”代码调整为:

[实验案例]有$_SERVER['PHP_SELF']的php页面中,XSS跨站脚本的利用与防范_第5张图片

继续用http://localhost/test.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E请求访问,不会再弹出XSS脚本执行的弹框

[实验案例]有$_SERVER['PHP_SELF']的php页面中,XSS跨站脚本的利用与防范_第6张图片

查看客户端代码转换为:

[实验案例]有$_SERVER['PHP_SELF']的php页面中,XSS跨站脚本的利用与防范_第7张图片

你可能感兴趣的:([实验案例]有$_SERVER['PHP_SELF']的php页面中,XSS跨站脚本的利用与防范)