1.实验后回答问题
(1)SQL注入攻击原理,如何防御
原理:通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
防御:对输入的数据进行限制,非法字符不能输入
(2)XSS攻击的原理,如何防御
原理:它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本
防御:对输入数据进行过滤,
(3)CSRF攻击原理,如何防御
原理:利用用户在某站点的cookie,另一站点对用户发送攻击代码,使得另一站点以用户的登录信息登入站点。
防御:在cookie中包含该用户的特定信息,登陆时使用验证码等等
2.1实验步骤
1、webgoat准备
将webgoat存入kali后,在相应的目录的终端输入java -jar webgoat-container-7.0.1-war-exec.jar
然后在浏览器中输入http://localhost:8080/WebGoat,用下方默认的用户登录
2.Phishing with XSS
在搜索框输入
在搜索框里输入XSS攻击代码
3、stored XSS attacks
在发送的帖子中插入jsp代码,当帖子被别人浏览时,会被浏览器解析
在帖子中输入
看见提示框,发现成功
4、reflected XSS Attack
在“Enter your three digit access code:”中输入
点击updatecart
5、numeric sQl injection
代码是当station=101时查看columbia的天气,我们将“value=101”变为“value=101 or 2=2”,等式恒成立,我们就可以查看所有地方的天气了。
6、common injection
右键复选框,选择inspect Element
,在option后加上"& netstat -an & ipconfig"
在页面中选择该类型,然后点击view
,则会出现结果
7、CSRF
我们可以以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一次CSRF攻击。
查看自己电脑的Screen和menu的值:
帖子
内容为
提交后可以看到内容
8、CSRF 冒名转账
利用CSRF进行冒名操作转账,不过这次包括了转账请求和确认转账成功请求,需要传递两个参数给服务器
在message
框输入
提交后点击,我们可以看到结果
3.实验问题
之前打开webgoat发现侧边菜单只有几个选项,都是和实验无关的内容,经同学指点后发现java设置有问题
4.实验心得
这次实验几乎就是切实的去攻击了,除了这些攻击的站点都做得极为不严谨之外。而且在攻击时,我们不仅需要对各种攻击方式熟悉,更要对很多种语言熟悉,如果你不懂语言,各种工具可没有成熟的ui来方便你的操作。