实验目的

了解客户端脚本植入攻击的方式

掌握防范攻击的方法

实验原理

了解客户端脚本植入攻击的方式

掌握防范攻击的方法

实验内容

了解客户端脚本植入攻击的方式

掌握防范攻击的方法

实验环境描述

1、 学生机与实验室网络直连;

2、 VPC1与实验室网络直连;

3、学生机与VPC1物理链路连通;

实验步骤

1.打开虚拟机,输入用户名和密码,用户为admin 密码为 123456

2.学生进入目标主机,(第一次启动目标主机,还需要打开xampp,手动开启Apache与MySQL服务)

3.打开浏览器,输入localhost:8080/example_code/ 如图:

4、点击(3)客户端脚本攻击(script Insertion)。如图:

5、然后点击演示1,如图:

6、在正常的情况下来访者在图3-2的“标题”文本框中输入留言的标题,在“姓名”文本框中输入留言者的姓名,在“电子邮件”文本框中输入留言者的电子邮件信箱,在“问题”文本框中输入留言者的问题。 假如在“问题”文本框中输入:

<h1>我来也</h1>

如图:

7、然后点击提交,如图:

8、开始攻击: 点击攻击1,显示简单的对话框 假如在ex3-1.php网页的“问题”文本框中输入:

<script>alert("吓一跳!");</script>

如图

9、单击【提交】按钮后,会发生什么情况?如图:

之所以会这样,是因为您在留言板的“问题”文本框中输入了上述的一串代码 ,而浏览器遇到script 标签时,就会执行客户端的程序代码(在这里JavaScript).所以单击留言板的【提交】按钮后,就会显示一个对话框。

10、如果点击【提交】按钮后想显示上图所示的对话框,那么请检查下列的两个选项。 (1)检查Intemet Explorer的活动脚本功能是否启动。如果活动脚本功能没有打开,就无法执行网页中的JavaScript代码。     打开打开Internet Explorer的活动脚本功能 在Internet Explorer中选择【工具】一【Inertnet选项】命令,这时会弹出“Inertnet选项”对话框,如图所示:

11、在“Internet选项”对话框中切换到“安全”选项卡,然后单击下方的【自定义级别】按钮,如图

12、“安全设置”对话框中,找到“脚本”项中的“Java小程序脚本”选项。确认“Java小程序脚本”的“启用”项目,这样Internet Explorer才会执行网页中的JavaScript代码。

13、如果点击【确认】按钮后想显示上图所示的对话框,还需要修改另一个参数。

(2)检查PHP的php.ini文件中,magic_quotes_gpc的当前值是否是Off.如果magic_quotes_gpc的当前值是On,那么alert("吓一跳吧!")中的双引号“"”就会被改成转义字符“\"”,而让这个JavaScript代码无法执行。 所以我们需要将magic_qutes_gpc的值改为off 打开php.ini文件,这个文件位置在C:\Windows文件夹内。在php.ini中找到magic_quotes_gpc选项,如图3-7所示。将magic_quotes_gpc的值设置成Off。如图:

14、修改php.ini文件后,要重新启动Apache服务器。

点击桌面上的XAMPP Control Panel,然后点击Apache上的stop再start如图:

15、点击防护一,使用trip_tags函数来进行HTML输出过滤如图:

16、点击确认,就不会出现“吓一跳吧!”的对话框了。如图

17、利用数据库来来攻击,前面所讲的是咋留言板的“问题”文本框中输入:

<script>alert("吓一跳吧!");</script>

,点击确认后就会出现一个对话框 但是这只是客户端的黑客行为,只是在自己的浏览器内输入带有攻击效果的JavaScript代码,然后显示在自己的浏览器上而已。对网站而言,根本不会发生什么破坏性的结果。如果说有破坏的话,也只是黑客自己破坏自己的网页而已。 但是要记住,大部分PHP网站所设计的留言板的内容都会保存到MySQL数据库中。也就是说,黑客所录入的具有攻击性的JavaScript代码会被保存到网站的MySQL数据库中。 这样情况就严重了,因为当有权限浏览留言的人打开了具有攻击性的JavaScript代码的留言页面时,就会立即弹出一个对话框。

18、将具有攻击效果的JavaScript代码填入留言板的文本框中。点击攻击2如图:

19、单击表单的【提交】按钮,Web应用程序将录入的这段JavaScript代码插入数据库中。立即弹出一个对话框,让浏览留言页的用户觉得莫名其妙

20、点击查看2:已经新增了55,则说明实验成功。如图:

21、点击防护2,使用trip_tags函数来进行HTML输出过滤。如图:

22、单击确认,就不会出现对话框。如图:

这种攻击形式只是小小的恶作剧罢了,因为在网页中弹出一个对话框并不会造成什么破坏。但是试想,如果攻击性的JavaScript代码会破坏网页,例如莫名其妙地弹出许多新窗口,怎么关也关不完。那么这个网站的服务器也就快宕机了

22、破坏性的攻击手法:显示无穷尽的新窗口 单击演示3,并输入


<script>while(l) (window.open()); </script>

如图:

23、单击确认,如图:

24、点击攻击3,如图:

25、 点击提交后,

while(l) 会让程序进入无穷循环,而: window.open(); 则会打开一个新的浏览器窗口。如图:

26、 点击防护3,

使用strip_tags函数进行HTML输出过滤。如图:

27、引诱性的攻击手法:跳转网址

点击演示4,并在“问题”文本框中输入下列 如图:

28、单击确认,如图:

 29、 单击攻击4,并输入如图代码:

30、 点击提交,页面正在跳转,如图;(若跳出如下所示的框,只要点击“添加”即添加该网址为信任网址。添加完成后,点击关闭即可。)

注意:若你本虚拟机不能上网则显示如下图所示的页面,此页面也成功跳转成功。

31、点击查看新加的数据,已经看见我们刚刚添加的hh002,说明已经添加成功,如图:

32、点击防护4,使用htmlspecialchars函数进行HTML输出过滤。如图:

33、单击确定,页面则不会跳转,说明防护成功。如图:

34、实验完毕,关闭虚拟机和所有窗口。

HTTP攻击与防范-PHP客户端脚本攻击的更多相关文章

  1. HTTP攻击与防范-跨网站脚本攻击

    实验目的 1.了解XSS -跨网站脚本攻击带来的危险性. 2.掌握XSS -跨网站脚本攻击的原理与方法 3.掌握防范攻击的方法 实验原理 跨网站脚本攻击之所以会发生,是因为网站的Web应用程序对用户的 ...

  2. Web攻防系列教程之跨站脚本攻击和防范技巧详解

    摘要:XSS跨站脚本攻击一直都被认为是客户端Web安全中最主流的攻击方式.因为Web环境的复杂性以及XSS跨站脚本攻击的多变性,使得该类型攻击很 难彻底解决.那么,XSS跨站脚本攻击具体攻击行为是什么 ...

  3. 【系统安全性】二、Web攻击与防范

    二.Web攻击与防范 1.XSS攻击 跨站脚本攻击(Cross Site Scripting),因为简写CSS,与层叠样式表(Cascading Style Sheets)有歧义,所以取名XSS 原理 ...

  4. PHP漏洞全解(三)-客户端脚本植入

    本文主要介绍针对PHP网站的客户端脚本植入攻击方式.所谓客户端脚本植入攻击,是指将可以执行的脚本插入到表单.图片.动画或超链接文字等对象内.当用户打开这些对象后,黑客所植入的脚本就会被执行,进而开始攻 ...

  5. XSS脚本攻击漫谈

    XSS跨站脚本攻击一直都被认为是客户端  Web安全中最主流的攻击方式.因为  Web环境的复杂性以及 XSS跨站脚本攻击的多变性,使得该类型攻击很难彻底解决.那么,XSS跨站脚本攻击具体攻击行为是什 ...

  6. 第二百六十五节,xss脚本攻击介绍

    xss脚本攻击介绍 Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常 ...

  7. DNS常见攻击与防范

    DNS常见攻击与防范 转自:http://www.williamlong.info/archives/3813.html 日期:2015-7-10 随着网络的逐步普及,网络安全已成为INTERNET路 ...

  8. 破坏之王DDoS攻击与防范深度剖析【学习笔记】

    一.DDoS初步印象 1.什么是分布式拒绝服务攻击? 1)首先它是一种拒绝服务攻击 我们可以这么认为,凡是导致合法用户不能访问服务的行为,就是拒绝服务攻击. 注:早期的拒绝服务主要基于系统和应用程序的 ...

  9. Google Hacking 搜索引擎攻击与防范

    Google Hacking,有时也会被称为 Google dorking,是一种利用谷歌搜索的高级使用方式进行信息收集的技术.这个概念最早在2000年由黑客 Johnny Long 提出并推广,一系 ...

随机推荐

  1. 【C++】类-多态

    类-多态 目录 类-多态 1. 基本概念 2. 运算符重载 2.1 重载为类的成员函数 2.2 重载为非成员函数 3. 虚函数 4. 抽象类 5. override与final 1. 基本概念 多态性 ...

  2. request.getServletContext()爆红问题

    ServletRequest的getServletContext方法是Servlet3.0添加的,这个可以看一下官方文档 http://docs.oracle.com/javaee/6/api/jav ...

  3. 单例模式的各种实现方式(Java)

    单例模式的基础实现方式 手写普通的单例模式要点有三个: 将构造函数私有化 利用静态变量来保存全局唯一的单例对象 使用静态方法 getInstance() 获取单例对象 懒汉模式 懒汉模式指的是单例对象 ...

  4. python 小兵(4)之文件操作 小问题

    1.光标不对就用seek 2.文件操作方面注意不要变修改变删除,会爆出文件正在运行不能操作 3.w模式下只有开始打开的时候会清空 4.文件操作的时候用as 后面的参数进行操作,不能用文件名进行操作 5 ...

  5. Webpack之 webpack-dev-server 中的 contentBase配置及作用

    contentBase:主要是指定静态资源的根目录的.  

  6. ApacheCN Kali Linux 译文集 20211020 更新

    Kali Linux 秘籍 中文版 第一章 安装和启动Kali 第二章 定制 Kali Linux 第三章 高级测试环境 第四章 信息收集 第五章 漏洞评估 第六章 漏洞利用 第七章 权限提升 第八章 ...

  7. 隐式参数arguments

    类数组对象中(长得像一个数组,本质上是一个对象):arguments 常见的对arguments的操作是三个 获取参数的长度  arguments.length 根据索引值获取某一个参数 argume ...

  8. JFrame 的层次结构 及 背景设置说明

    感谢原文:https://blog.csdn.net/qq_32006373/article/details/49659129 一.JFrame 的层次结构 我们通过两个图来说明一下 JFrame 的 ...

  9. Plist存储

  10. 连接docker里面的mysql失败解决

    场景:在虚拟机的docker容器中安装latest版本的mysql之后,在宿主机中使用navicat连接虚拟机中的mysql出现下图报错: 解决方法: 1.首先docker ps命令查看正在运行的容器 ...