20155328 《网络对抗》 实验九 Web安全
基础
实验过程记录
在实验开始之前先把webgoat的jar包放到home目录下。打开终端,用命令java -jar webgoat-container-7.0.1-war-exec.jar
开启WebGoat.
输入默认的用户名和密码,登陆webgoat。
XSS攻击
1.Pinishing with XSS跨站脚本钓鱼攻击
在webgoat中打开Pishing with XSS,将写好的前端代码粘贴到输入框中,点击search:
在登陆框输入用户名和密码,登陆后跳出来的框中就显示出来了:
2.Stored XSS Attacks存储型XSS攻击
在WebGoat中打开Stored XSS Attacks
,Message框中输入<script>alert("I am zhangyuqing");</script>
,点击submit提交:
3.Reflected XSS Attacks反射型XSS攻击
打开XSS第三个攻击,在code框中输入<script>alert("I am groot20155328");</script>
,点击purchase出现对话框:
CSRF攻击
4.Cross Site Request Forgery(CSRF)
查看网页右边Parameters中的src和menu值,在title框中输入学号,message框中输入代码<img src='attack?Screen=src值&menu=menu值&transferFunds=转账数额' width='1' height='1'>
,提交后
生成链接20155328:
点开链接,可以看到用户操作信息:
5.CSRF Prompt By-Pass
在title框中输入学号,message框中输入代码:
<iframe src="attack?Screen=src值&menu=menu值&transferFunds=转账数额"> </iframe>
<iframe src="attack?Screen=src值&menu=menu值&transferFunds=CONFIRM"> </iframe>
提交后点开生成的名为20155328的链接:
SQL注入攻击
6.命令注入(Command Injection)
调试网页源代码需要用到Firebug,我的浏览器没有,所以就去工具栏的Add-on中下载:
下载并安装好以后,工具栏多出一个小虫子图标,点开就可以开始用firebug进行网页源代码调试啦:
点开虫子图标,在view那一行的复选框中代码后添加"& netstat -an & ipconfig"
:
点击view按钮,就可以看见刚才输入的命令执行结果了:
7.Log Spoofing日志欺骗
在username中输入5328%0d%0aLogin Succeeded for username: admin
,点击Login:
8.String SQL Injection字符串型注入
选择String SQL Injection,输入查询的用户名Zhang' or 1=1--
(Zhang之后的引号与之前的引号形成闭合,而1=1是永真式,--之后的内容被注释掉了,即可查询表中所有数据):
9.LAB:SQL Injection
在密码框中输入' or 1=1 --
,登陆失败;使用Firebug查看网页源码,发现密码有长度限制,就将maxlength改为100,再次尝试;成功:
10.Database Backdoors
输入实例101尝试,获得了用户号为101的用户信息:
输入语句101; update employee set salary=99999
,将用户工资变为99999:
输入语句101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20155328@hackme.com' WHERE userid = NEW.userid
,则表中一旦添加新用户,该用户的邮箱即为我设置的邮箱。
实验后问题回答
- SQL注入攻击原理是啥?如何防御?
原理是将SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。防御方法就是尽量替换单引号,并删除用户输入内容中的所有连字符。
- XSS攻击原理是啥?如何防范?
原理是往Web网页中插入恶意HTML代码,当用户浏览该页时,恶意代码就会被执行。防范方法:在表单提交或者url参数传递前,对需要的参数进行过滤。
- CSRF攻击原理是啥?如何防范?
钓鱼,让用户在不知情的情况下攻击自己登陆的一个系统。防御:尽量不要在页面的链接中暴露用户隐私信息;避免全站通用的cookie,严格设置cookie的域。
实践总结与体会
哇,最后一次实验敲到这里也就要说拜拜了。9次实验里面感觉学了很多很厉害的东西(虽然对于专业人士而言只是一点皮毛),但也感觉超绝快乐!!学而不思则罔,希望自己接下来的学习路也能一边思考一边学吧。ヾ(◍°∇°◍)ノ゙加油!