20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

时间:2022-11-12 22:28:16

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

1.实践目标

1、理解常用网络攻击技术的基本原理。

2、Webgoat下进行相关实验:SQL注入攻击、XSS攻击、CSRF攻击。

2.实验后回答问题

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

	SQL注入原理:利用可以进行输入的INPUT框,在正常的语句后面加上一些对SQL数据库的非法的增删查改等语句,以达到攻击者的恶意目的。
防御:因为对数据库进行操作的的指令一般都需要输入一些特殊符号,所有以我们可以设置INPUT框的输入规则,禁止特殊字符的输入。

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

	XSS攻击原理:XSS攻击与SQL注入攻击比较类似,利用可以进行输入的INPUT框,在网页中使用HTML、javascript语言,编写非法的可执行代码到URL中,等到有用户主动访问,恶意代码运行,就可以对访问用户的正常浏览页面进行破坏。
防御:可以对用户的输入数据进行审核,设置敏感字符如```<script></script>```、敏感符号如```‘&’、‘<’```……等,一旦用户输入的数据中涉及到敏感内容,则不允许通过。

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

	CSRF攻击原理: 首先用户浏览并登陆了信任网站A。信任网站A对用户进行验证,验证成功后,在用户处生成A的cookie。此时用户又在没有注销网站A中的登陆的情况下访问了危险网站B,B就可以得到用户的cookie并以用户的名义要求访问网站A。A就把携有用户cookie的B发出的请求当作用户的请求来处理,就实现了恶意网站B的目的。
防御:对于网页中用户的隐私信息尽量使用POST方式来提交,不要明文进行传输。也可以在用户每次提交申请时,要求输入一个只有用户才可以得到的验证码。

3.实验总结与体会

这次实验主要是做了一些简单的浏览器攻击,感觉SQL注入攻击、XSS攻击这些攻击只要我们在编写网站代码时稍有限制,其实就可以避免。CSRF攻击比起前两个攻击,其实是比较难防御的,造成的后果也是最严重的,因此需要我们在编写代码方面下一点功夫来避免这些攻击带来的严重后果。

4.实践过程记录

(1)环境配置

①开启webgoat。

java -jar webgoat-container-7.0.1-war-exec.jar

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

②在浏览器中输入localhost:8080/WebGoat使用默认用户名和密码登陆。

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

(2)SQL注入攻击

1、Numeric SQL Injection——数字SQL注入攻击

①在左边滑动框中根据名字找到自己想做的实践。右边滑动框是对该攻击的介绍与要求,建议大家先尝试理解,如果像我一样没有过六级的话,建议使用百度翻译……

简介:
SQL注入攻击对任何数据库驱动的站点都是一个严重的威胁。攻击背后的方法很容易学习,造成的伤害可以使相当大到完整的系统妥协。尽管存在这些风险,在互联网上仍有数量惊人的系统很容易受到这种形式的攻击。
它不仅是一个容易发生的威胁,也是一个一点常识和远见就可以很容易地防御的威胁。
使用操作系统命令、脚本和数据库查询指令可造成SQL注入的威胁。
攻击要求:下面的表单允许用户查看天气数据。尝试注入SQL字符串,结果将显示所有天气数据。

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

②首先我们要想让它显示所有的天气数据,就要对它进行注入。但是我们可以观察到这个题是没有办法自己控制输入的。既然没有办法在前端进行修改,我们就只能利用代理服务器拦截我们发送出去的网页,然后从后端对它的代码进行修改了!直接右键—>选择Inspect Element,就可以看到网页的源代码。

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

②我们对哥伦比亚的101进行修改,修改为“101 or 1=1”,保存后在原界面仍然选择哥伦比亚,然后提交,成功查询到所有的地区的天气情况。

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

**2、Log Spoofing——日志欺骗 **

简介:下面的灰色区域表示将要登录到Web服务器的日志文件中的内容。你的目标是使它像一个用户名“admin”已成功登录。
通过向日志文件中添加脚本来提升攻击。

①我们可以观察登录失败的字符串,分析到我们用户名无论输入什么,无论登录是否成功,用户名都会被显示出来。

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

②利用步骤一发现的这一点,我们在用户名框中添加登陆成功的字符串如:%0a%0a%0a%0a%0a(换行)Login succeeded !admin,显示如下图:

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

**3、String SQL Injection——字符串的SQL注入 **

简介:下面的表格允许用户查看他们的信用卡号码。尝试注入一个SQL字符串,结果显示所有的信用卡号码显示。

①在查找框中输入以下语句:SELECT * FROM user_data WHERE last_name = ''or 1='1'我们可以观察这个字符串语句,可以分为两句话:SELECT * FROM user_data WHERE last_name = ''和'or 1='1',而1=1永远成立,所以我们可以查找到所有人的银行卡账号。攻击成功!

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

**4、Database Backdoors(1)——数据库后门 **

简介:
第一阶段:使用字符串sql注入执行多个sql语句。本课的第一阶段是教你如何使用一个易受影响的字段来创建两个SQL语句。第一个是系统的,第二个是你的。您的帐户ID是101。这个页面允许你看到你的密码,SSN和工资。尝试注入使工资值增加。
第二阶段:使用字符串SQL注入注入后门。本课的第二阶段是教你如何使用vulneable领域注入DB工作或后门。现在尝试使用相同的技术注入触发器。

①我们先ID=101,看一下正常工资值是多少。

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

②通过在ID框中输入101; update employee set salary=145203,来改工资。相当于是在正常的SQL语句后又添加了一个数据库更新语句。攻击成功!

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

**5、Database Backdoors(2)——数据库后门 **

在第二阶段的攻击中,我们再输入框中输入101 or 1=1;CREATE TRIGGER myBackDoor BFFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='sophia@qq.com'WHERE userid = NEW.userid;将每一个新用户的收款邮箱都改为自己的邮箱地址。修改成功!

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

**6、Blind Numeric SQL Injection——盲数值SQL注入 **

简介:下面的表单允许用户输入帐号并确定其有效与否。使用此表单开发数据库中的其他项的真/假测试。我们的目标是找到cc_number=1111222233334444的pin在PINS表中的值,并把找到的值放在窗体上传递出来。

①我们可以在输入框中输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 2500 );101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') < 2600 );类型的句子,不断进行暴力破解。最后找到答案,攻击成功。

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

(3)XSS攻击

**1、Stored XSS Attacks——存储型XSS攻击 **

简介:可以利用OS命令,脚本和数据库查询的输入指令发帖子,使得其他用户在试图打开你的帖子时,会加载出一个不想要的网页或意想不到的内容。

①发布一个massage为<script>alert("Hi,I‘m 5203sophia!");</script>的帖子。然后点击我所发布的帖子。效果如下:

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

2、Reflected XSS Attacks——反射型XSS攻击

简介:在服务器端验证所有输入是一个很好的方法。XSS可以发生在未经验证的用户输入用于HTTP响应。在反射型XSS攻击中,攻击者可以制作一个URL攻击脚本发送到另一个网站,比如电子邮件,然后让受害者点击它。

①在Enter your three digit access codeA:框里填入获取cookie的javascript代码:<script>alert(document.cookie);</script>。成功获取cookie。

(还没有来得及截图,不小心手残把浏览器设置为了禁止弹出多余的对话框,然后它就再也弹不出来了)

(4)CSRF攻击

1、Cross SSite Request Forgery(CSRF)——跨ssite请求伪造

简介:目标是把电子邮件发送到银行。该电子邮件包含一个图像,其URL指向恶意请求。可以通过在右边的参数中查找“src”和“menu”值来构造链接。
CSRF的电子邮件,是用来匿名的将收件人的资金转移。

①在messahe对话框中输入:<img src=' attack?Screen=自己的scr &menu=自己的menu &transferFunds=转钱数 ' width='1' height='1'>及转账确认信息,即可完成转账。

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

2、CSRF Prompt By-Pass

简介:与上一个攻击类似,不同的是这次的目标是发送一组包含多个恶意请求的邮件:①资金转移请求②资金转移确认信息。

②只需要在上面的语句后再加一句:<img src='attack?Screen=自己的src&menu=自己的menu&transferFunds=CONFIRM' width='1' height='1'> 即可,攻击成功。

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践的更多相关文章

  1. 20145302张薇 《网络对抗技术》逆向及BOF基础实践

    20145302张薇 <网络对抗技术>逆向及BOF基础实践 实验内容 实践对象:名为20145302的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单 ...

  2. 20145328 《网络对抗技术》逆向及Bof基础实践

    20145328 <网络对抗技术>逆向及Bof基础实践 实践内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回 ...

  3. 20145210姚思羽《网络对抗技术》逆向及Bof基础实践

    20145210姚思羽<网络对抗技术>逆向及Bof基础实践 实践目标 1.本次实践的对象是一个名为pwn1的linux可执行文件. 2.该程序正常执行流程是:main调用foo函数,foo ...

  4. 20155201 网络攻防技术 实验九 Web安全基础

    20155201 网络攻防技术 实验九 Web安全基础 一.实践内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 二.报告内容: 1. 基础问题回答 1)SQL注入攻击 ...

  5. 2018-2019-2 20165210《网络对抗技术》Exp9 Web安全基础

    2018-2019-2 20165210<网络对抗技术>Exp9 Web安全基础 实验目的 本实践的目标理解常用网络攻击技术的基本原理. 实验内容 安装Webgoat SQL注入攻击 - ...

  6. 2017-2018-2 20155314《网络对抗技术》Exp9 Web安全基础

    2017-2018-2 20155314<网络对抗技术>Exp9 Web安全基础 目录 实验目标 实验内容 实验环境 基础问题回答 预备知识 实验步骤--WebGoat实践 0x10 We ...

  7. 20165214 2018-2019-2 《网络对抗技术》Exp9 Web安全基础 Week13

    <网络对抗技术>Exp9 Web安全基础 Week13 一.实验目标与内容 1.实践内容 (1).本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目.包括(SQL,XSS,CSR ...

  8. 2018-2019-2 20165315《网络对抗技术》Exp9 Web安全基础

    2018-2019-2 20165315<网络对抗技术>Exp9 Web安全基础 目录 一.实验内容 二.实验步骤 1.Webgoat前期准备 2.SQL注入攻击 Command Inje ...

  9. 2018-2019-2 20165212《网络对抗技术》Exp9 Web安全基础

    2018-2019-2 20165212<网络对抗技术>Exp9 Web安全基础 基础问题回答 1.SQL注入攻击原理,如何防御? 原理:SQL注入,就是通过把SQL命令插入到Web表单递 ...

  10. 2018-2019 2 20165203 《网络对抗技术》Exp9 Web安全基础

    2018-2019 2 20165203 <网络对抗技术>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS ...

随机推荐

  1. Qt4&period;8&period;5 QtWebKit QWebView 用户栈检查崩溃问题的思考

    最近在项目中,发现在使用Qt4.8.5 提供的QWebView与网页交互的时候, m_pWebView->page()->mainFrame()->evaluateJavaScrip ...

  2. C语言学习004&colon;数组与指针

    在C语言中,字符串实际上就是字符数组,在内存中字符串"Shatner"存储的形式是这样的

  3. JQuery隐藏显示详情功能

    放置两个DIV:初始DIV :在Repetr绑定设置文字隐藏(三元运算符):'<%# Eval("字段2").ToString().Length>11?Eval(&qu ...

  4. iOS开发技巧系列---详解KVC&lpar;我告诉你KVC的一切&rpar;

    KVC(Key-value coding)键值编码,单看这个名字可能不太好理解.其实翻译一下就很简单了,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值.而不需 ...

  5. 4、什么构成了我们Android应用程序?(七大件)

    一.应用程序四大组件 [Activity] Activity是Android应用程序的一个界面,可以通过这个界面查看联系人,打电话戒玩游戏. b. 一个应用程序通常包含多个Activity. c. A ...

  6. Ext&period;Net学习笔记09:Ext&period;Net Store的用法

    使用Handler处理分页 首先来创建一般处理程序,我命名为StoreHandler.ashx,然后它的处理过程代码如下: public void ProcessRequest(HttpContext ...

  7. 执行find &sol; -name &ast;&period;sh时报错 find&colon; 路径必须在表达式之前&colon; start-ressvr-release&period;sh

    想查找一个包含4000多文件的目录下所有.sh结尾的文件 使用命令     find  ./ -name *.sh     (本身已经在要查找的目录里了) 结果报错:  解决方法一:find ./ - ...

  8. hadoop hdfs 数据迁移到其他集群

    # hadoop fs -cat /srclist Warning: $HADOOP_HOME is deprecated. hdfs://sht-sgmhadoopcm-01:9011/jdk-6u ...

  9. swift class的缺省基类(SwiftObject)与内存模型

    Hard Constraints on Resilience The root of a class hierarchy must remain stable, at pain of invalida ...

  10. 2017-2018-2 20172302 『Java程序设计』课程 结对编程练习&lowbar;四则运算

    1.结对对象 20172308周亚杰 2.本周内容 需求分析 (1).自动生成题目 可独立使用(能实现自己编写测试类单独生成题目的功能) 可生成不同等级题目,类似于: 1级题目:2 + 5 = .10 ...