20212303亢瑞锋 实验八 WEB安全实践

实践内容

1. Web前端HTML
  • 安装与配置:能够正确安装和启停Apache服务器。
  • HTML基础:深入理解HTML结构,包括表单的创建与使用。
  • 表单与GET/POST:编写一个包含表单的HTML页面,了解GET与POST方法的不同之处。

安装相关软件、数据库、并注册为ses

编写html,这里使用去年网络攻防课程的源码

完成数据库创立

 web后端 PHP

  • 在/var/www/html文件夹下新建php文件

修改之前的html文件,使其点击登录按钮后能跳转到对应的php页面

在数据库中添加数据,做登陆测试

采用跳过验证的方式登录,或条件恒为真。

数据库有记录

采用跨站脚本攻击注入,上网搜索的注入代码

XSS注入攻击

2. Web前端JavaScript
  • JavaScript基础:掌握JavaScript的基本语法和功能。
  • DOM操作:理解并实践DOM(文档对象模型)的操作,包括获取和修改HTML元素。
  • 表单验证:在HTML表单的基础上,使用JavaScript编写用户名和密码的验证逻辑。实现用户点击登录按钮后显示“欢迎+输入的用户名”的功能。
  • 注入攻击尝试:了解并尝试使用注入攻击来测试网页的安全性,包括HTML和JavaScript注入。
3. Web后端1:MySQL基础
  • 安装与配置:成功安装、启动MySQL数据库,并掌握基本的数据库操作。
  • 用户与权限管理:创建数据库用户、修改密码,并为用户分配适当的权限。
  • 建库与建表:根据需求创建数据库和表结构。
4. Web后端2:PHP与数据库连接
  • PHP基础:编写PHP网页,实现与MySQL数据库的连接。
  • 用户认证:在PHP网页中实现用户登录功能,包括用户数据的验证和存储。
5. 安全性测试
  • SQL注入:了解SQL注入的原理和危害,尝试对PHP网页进行SQL注入攻击,并修复相关漏洞。
  • XSS攻击:理解XSS攻击的原理,对网页进行XSS攻击测试,并修复潜在的安全隐患。
  • CSRF攻击:了解CSRF攻击的原理,并尝试进行CSRF攻击测试,确保网站的安全性。
6. 安全实践平台
  • WebGoat安装与使用:安装WebGoat或类似的安全实践平台,通过完成平台上的SQL注入、XSS、CSRF等攻击案例,深入理解这些攻击的原理和防御方法。

实践相关知识点

1. 表单
  • 表单是网页中用于数据采集的重要组件,包含表单标签、表单域和表单按钮等部分。
2. SQL注入
  • SQL注入攻击是通过向Web应用程序的输入字段中插入或“注入”恶意的SQL代码片段,从而在未经授权的情况下执行非法操作。
3. XSS攻击
  • XSS攻击通过向网页中注入恶意脚本,当用户浏览网页时,这些脚本会在用户的浏览器中执行,从而窃取用户信息或执行其他恶意操作。
4. CSRF攻击
  • CSRF攻击利用用户的登录状态,通过第三方站点向被攻击网站发送恶意请求,从而在用户不知情的情况下执行非法操作。
5. WebGoat
  • WebGoat是一个基于Java的Web应用程序,旨在教授开发人员如何识别和防止Web应用程序中的安全漏洞。它提供了丰富的案例和场景,帮助用户深入了解各种Web安全威胁。

安装Webgoat或类似平台,并完成SQL注入、XSS、CSRF攻击

sql注入

webgoat->(A1)Injection->SQL Injection(advanced)->3

  • 第一种 联合查询(union)注入

Name框输入:

下载webgoat,webgoat安装 首先需要配置JDK1.8,我们可以从oracle的官网进行下载,如下图所示,选择linux的x64版 本进行下载

Dave'	union	select userid, user_name, password, cookie, '5','6',7 from user_system_data—ss
  • 第二种 堆叠注入(query chaining)

Name框输入:

1';select * from user_system_data-- ss
2.5.2 xss

webgoat->(A7)Cross-Site Scripting(XSS)->7

我们在输入框中输入一些代码,而浏览器又不会对用户输入做格式验证,因此就会导致浏览器执行非法代码,进而完成xss。

在密码框输入则失败

最后发现点击UpdateCart,下方将credit cart number显示出来了,那么用户名的输入框应该是一个攻击点。

 csrf

webgoat->(A8:2013)->Crss-Site Request Forgeries

使用Burpsuite拦截请求

将请求发送到重发器并查看响应

删除请求中的Referer并且csrf = false,查看响应,成功获取flag

修改请求中的Host, 使得Host内容与Referer不同

输入flag,页面提示成功

问题1:我遇到了WebGoat和BurpSuite需要的Java版本不同,导致无法同时使用的问题

解决方案

  1. 使用虚拟机
    我决定创建一个虚拟机,并在该虚拟机中安装与WebGoat兼容的Java版本。这样,我就可以在虚拟机中运行WebGoat,而我的主机则可以继续使用与BurpSuite兼容的Java版本。

  2. 尝试Docker容器
    如果WebGoat支持Docker部署,我会考虑使用Docker来运行WebGoat,并指定所需的Java版本。Docker允许我在容器中隔离应用程序,避免与主机上的其他Java应用程序冲突。

  3. 安装Java版本管理器
    我可以使用如jenvsdkmanAdoptOpenJDK等工具来管理多个Java版本。这些工具允许我为每个项目或应用程序设置不同的Java版本。我可以在一个终端窗口中设置与WebGoat兼容的Java版本,然后在另一个终端窗口中设置与BurpSuite兼容的Java版本。

  4. 调整Java目录
    虽然这个解决方案可能稍显复杂,但我确实可以将WebGoat的jar包放到与其兼容的Java版本的目录中,并确保在启动WebGoat时使用正确的Java命令。

学习感悟

本次实验难度大,耗时长,感悟深刻!!!感谢王老师的指导教学!!!

通过这一系列的Web安全学习实验,我深感网络安全的重要性与复杂性。

以下是我个人的一些感悟:

  1. 基础知识的掌握
    在开始这些实验之前,我对Web开发的基础,如HTML、JavaScript、PHP以及MySQL只有浅薄的了解。通过亲手安装、配置Apache、MySQL,并编写简单的HTML表单和PHP页面,我深刻体会到了基础知识的重要性。没有扎实的基础,很难在后续的学习中有所突破。

  2. 安全意识的培养
    在编写JavaScript验证用户名、密码的规则,以及进行SQL注入和XSS攻击测试时,我意识到网络安全不仅仅是技术层面的问题,更是一种意识。一个小小的疏忽,比如没有对用户输入进行严格的验证,就可能导致整个系统被攻击者利用。这让我明白了在日常工作中,必须时刻保持警惕,严格遵守安全规范。

  3. 攻防思维的转换
    在进行SQL注入和XSS攻击测试时,我不仅要编写攻击代码,还要思考如何防御这些攻击。这种攻防思维的转换让我对网络安全有了更深入的理解。我明白了攻击和防御是相辅相成的,只有充分了解攻击方式,才能更好地进行防御。

  4. 实践出真知
    通过亲手在Webgoat平台上进行SQL注入、XSS、CSRF攻击实验,我深刻体会到了实践的重要性。理论知识虽然重要,但只有通过实践才能真正掌握。在实验中,我遇到了很多问题,但通过不断尝试和查找资料,我最终都找到了解决方法。这种解决问题的能力是我在学习中获得的宝贵财富。

  5. 持续学习的必要性
    网络安全是一个不断发展的领域,新的攻击方式和防御手段层出不穷。通过这次学习,我意识到只有不断学习、不断更新自己的知识库,才能跟上这个领域的步伐。我将继续深入学习网络安全知识,努力提高自己的技能水平。

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值