实验三 Iframe框架钓鱼攻击与防护
1.实验目的
(1) 了解钓鱼攻击的概念和实现原理;
(2) 了解Iframe钓鱼网站和正常网站的区别;
(3) 复现Iframe漏洞攻击,并掌握一定的防护手段。
2. 实验原理
2.1什么是钓鱼网站?
钓鱼网站是指那些假扮成合法网站的虚假网站,旨在诱骗用户提供个人信息、账号密码、财务信息等敏感信息。这些网站通常会模仿知名的银行、电子支付平台、电子邮件服务提供商等机构的网站,以迷惑用户并诱使他们输入敏感信息。一旦用户在这些钓鱼网站上输入了信息,这些信息就可能被不法分子获取并用于欺诈、盗窃或其他非法活动。
钓鱼网站的特点包括:
伪装性:钓鱼网站通常会模仿合法网站的外观和设计,使用户很难分辨真伪。
诱导性:钓鱼网站通常通过虚假的邮件、短信或社交媒体链接等手段诱导用户点击链接访问,以达到诈骗目的。
窃取信息:一旦用户在钓鱼网站上输入了个人信息、账号密码等敏感信息,这些信息就可能被不法分子窃取并用于非法活动。
为了防范钓鱼网站的风险,用户可以注意以下几点:
注意邮件和短信的来源,避免点击可疑链接。
在访问银行、支付平台等网站时,确保网址正确,使用书签或手动输入网址。
谨慎对待要求输入个人信息的网页,尤其是通过邮件或短信链接跳转的页面。
同时,网络安全软件和浏览器也通常会提供钓鱼网站识别和防护功能,用户可以及时更新这些软件来提高网络安全水平。
3.实验环境
3.1基础环境配置
环境配置以本人为例:JDK8、Mysql8.0
在能够运行javaweb项目的基础上实现
可参考CSDN链接:实验一MYSQL注入
3.2导入依赖
版本version可以自行调节
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Java企业平台的基础web规范-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
</dependencies>
*依赖问题:进入项目的结构中,查看依赖是否成功导入*
若有问题见CSDN链接:javaweb项目依赖问题篇一-CSDN博客
4.实验步骤
(1) 前端界面设计,结果如图1所示
图 1 创建两个前端界面
(2) 后端代码编写,结果如图2所示:
通过前端传过来的p值,执行不同的方法
图 2 后端代码图
(3) 后端代码编写1,结果如图3所示:
当前端传过来的值为InY时,执行doNInframe方法,无防护后端代码
图 3 后端无防护代码图
(4) 后端代码编写2,结果如图4所示:
当前端传过来的值为InN时,执行doYInframe方法,可防护Iframe框架钓鱼的后端代码
原理是,使用正则表达式来判断前端传过来的值是否正常,如不正常则不允以应答,如正常则向前端返回前端Iframe标签中的值。
图 4 后端防护代码图
5.结果展示
(1) Iframe攻击展示
在前端文本框中输入如下代码,攻击成功,结果如图5所示: