2018-2019-2 20165331《网络对抗技术》Exp9 Web安全基础

2018-2019-2 20165331《网络对抗技术》Exp9 Web安全基础

实验收获与感想

本次实验需要借助Webgoat平台来进行,刚刚开始实验时我发现自己的网站页面和其他人不同,经过询问后得知是kali未安装JDK,安装后再借助Webgoat的中文手册完成了实验,总体难度不是很大。

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

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

  • 关闭或删除不必要的交互式提交表单页面;
  • 开启PHP安全模式Safe_mode=on;
  • 不要在服务器端放置备份的文件以免受到感染,或备份的文件含有漏洞,造成切入点;
  • 将数据库里的内容进行加密处理使其不具有特殊的意义。

XSS攻击的原理,如何防御

原理:攻击者利用网站漏洞输入可以显示在页面上的、对其他用户造成影响的HTML代码;由于受害者浏览器对目标服务器的信任,当其访问目标服务器上被注入恶意脚本的页面后,这段恶意脚本可以顺利执行,实现获取用户cookie并可以利用用户身份进行非法操作的目的。
防御:

  • 实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。
  • 对所有用户提交内容进行可靠的输入验证,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交.
  • 在输出数据之前对潜在的威胁的字符进行编码、转义

CSRF攻击原理,如何防御

原理:CSRF就是冒名登录。跨站请求伪造的核心本质是窃取用户的Session,或者说Cookie,因为目前主流情况Session都是存在Cookie中.攻击者并不关心被害者具体帐号和密码,因为一旦用户进行了登录,Session就是用户的唯一凭证,只要攻击者能够得到Session,就可以伪装成被害者进入服务器.
防御:

  • 验证请求中的Token
  • 验证 Referer
  • 添加加随机验证
  • 设定cookie域

实验流程

〇 Webgoat

(1)在官网下载安装包
(2)终端输入命令java -jar webgoat-container-7.0-SNAPSHOT-war-exec.jar运行Webgoat
(3)在浏览器中输入http://localhost:8080/WebGoat进入实验所用网站并使用下方的admin账户进行登录

ⅠSQL注入攻击

(1)命令注入(Command Injection)

原理:在正常的参数提交过程中添加恶意代码以执行某条指令。
操作:
①右键inspect Element,找到一个标签,注入代码"& netstat -an & ipconfig"
②点击view提交后可以看到执行指令后的网络端口使用情况和IP地址。

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

原理:在station字段中注入特征字符,组合成新的SQL语句。
操作:
①右键inspect Element,在选中的城市编号Value值中添加or 1=1
②点击view提交后显示所有城市的天气情况。

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

原理:基于以下查询语句构造SQL 注入字符串SELECT * FROM user_data WHERE last_name = '?'
操作:
以信用卡号查询页面做示范,在框内输入用户名可以查询某用户的信用卡号码,这里使用Smith' or 1=1--即可查询所有用户的信用卡号码。

ⅡXSS攻击

(1)存储型XSS攻击(Stored XSS Attacks)

原理:用户留言的时候输入一段JavaScript脚本,这段脚本就会被保存在数据库中,任何用户在打开网页的时候,这个脚本就会被从数据库中取出来而运行。
操作:
留言板中输入<script>alert("I am 20165318sxx. You've been attacked!!!");</script>

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

原理:在反射的XSS攻击中,攻击者可以使用攻击脚本创建一个URL,并将其发布到另一个网站、通过电子邮件或其他方式让受害者点击它。
操作:
①输入代码<script>alert("You were attacked by me!!!");</script>
②点击purse,即可看到页面给出反馈。

ⅢCSRF攻击

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

原理:跨站请求伪造是一种让受害者加载一个包含网页的图片的一种攻击手段。通过这种方式,攻击者可以让受害者执行他们不打算执行的操作。
操作:
①查看页面右侧Parameters中的src和menu值分别为322和900
②message框中输入,点击Submit提交
③在Message List中生成消息。点击该消息,当前页面就会下载这个消息并显示出来,从而达到CSRF攻击的目的。

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

原理:跨站点请求伪造(CSRF/XSRF)是一种攻击,它欺骗受害者加载包含“伪造请求”的页面,以便使用受害者的凭据执行命令。
操作:
①查看页面右侧Parameters中的src和menu值分别为266和900
②message框中输入代码

<iframe src="attack?Screen=270&menu=900&transferFunds=5000"> </iframe>
<iframe src="attack?Screen=270&menu=900&transferFunds=CONFIRM"> </iframe>

③在Message List中生成以Title命名的链接,点击进入后,攻击成功。

原文地址:https://www.cnblogs.com/violence/p/10927380.html