20145308 《网络对抗》 Web安全基础实践 学习总结

实验内容

  • 本实践的目标理解常用网络攻击技术的基本原理。Webgoat实践下相关实验。

    基础问题回答

  • (1)SQL注入攻击原理,如何防御
  • 通过在文本框中输入的字符串与web中事先定义好的SQL语句结合,构成注入攻击的SQL实现攻击
  • 主要还是通过编程时多多实现对输入字符串的合法性检验
  • (2)XSS攻击的原理,如何防御
  • 通过对网页注入可执行代码,实现攻击
  • 通过网页编程实现对输入内容的过滤
  • (3)CSRF攻击原理,如何防御
  • 跨站请求伪造,通过伪装受信任用户的请求利用受信任网站,利用用户在可信网站上没有登出的COOKIE做恶意操作
  • 经常删除保存的COOKIE

    实验总结与体会

  • 这次实验在WebGoat里做了SQL注入的10个相关实践,从上周学习的简单通过文本框中输入字符串构造SQL语句进行SQL注入到在文本框中提交文本或者发送邮件做XSS攻击,还有利用;邮件发送含有恶意URL请求的HTML对象来利用用户的COOKIE做非法操作

    实践过程记录

  • 开启webgoat

  • 最小化启动页面
  • 浏览器访问WebGoat

SQL注入

Numeric SQL Injection

  • 构造SQL语句,显示出数据库中不应该显示的信息
  • 首先开启BurpSuite
  • 设置代理,添加8888端口
  • BurSuite捕获到数据包
  • 修改station值,让SQL语句变为SELECT * FROM weather_data WHERE station = 101 or 1=1

  • 点击GO,修改成功

  • 一激动,成功了忘截图,只剩一个小钩钩了

  • 关闭BurSuite并设置浏览器不使用代理

    Log Spoofing

  • 构造字符串,用显示的登录信息欺骗登陆的用户,以为自己的登陆成功
  • 在登陆界面的用户名处输入%0d%0aLogin Succeeded! admain
  • 显示的其实还是登录失败的信息,只不过在视觉上欺骗了用户

String SQL Injection

  • 通过构造SQL语句显示数据库中所有信用卡的信息
  • 修改语句构造SELECT * FROM user_data WHERE last_name = '' or 1=1;--'显示全部信息

DataBase Backdoors stage1

  • 输入101 or 1=1;update employee set salary=3;构造SQL语句,创建了salary字段

DataBase Backdoors stage2

  • 通过题目给的SQL语句注入,实现创建一个后门,一旦添加一个新用户,就将新用户的邮箱修改为john@hackme.com

Blind Numeric SQL Injection

  • 通过SQL注入,在pins表中找到cc_number值为1111222233334444的pin值为多少
  • 输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444')>500);尝试大于500,成功;小于1000,失败;所以应该大于1000,一直用二分法尝试

  • 最后逼近到2364,猜测为2364,成功

  • 输入2364

Blind String SQL Injection

  • 原理基本上和Blind Numberic SQL Injection相同,这次是查询登录名是什么,也是构造能够查询登录名的SQL语句,一点点猜
  • 构造SQL字符串101 AND (SUBSTRING((SELECT name FROM pins WHERE cc_number='4321432143214321'),1,1)<'M');查询第一个字母是否小于M,成功;查询小于B,失败

  • 依次尝试,最后试出来是Jill

XSS攻击

Reflected XSS Attacks

  • 通过在文本框中输入,注入JS代码<script>alert(document.cookie);</script>,获得cookies

Stored XSS Attacks

  • 通过网站文本框输入,注入js代码,尝试盗走用户cookies
  • 输入一段JS代码<script>alert(document.cookie);</script>提交
  • 点击提交的文本

CSRF 攻击

Cross SSite Request Foregery(CSRF)

  • 在文本框中提交一个有URL恶意请求的代码,<img src='attack?Screen=278&menu=900&transFunds=100000' width='1', height='1'>,其中scr=278,menu=900,点击就会执行

CSRF Prompt By-Pass

  • 与上个实验类似,除了转账金额还增加了确认转账,同样构造两个包含恶意URL的图片,此次scr=268,增加<img src='attack?Screen=268&menu=900&transFunds=CONFIRM' width='1', height='1'>提交后点击

成功列表

20145308 《网络对抗》Web安全基础实践 学习总结的更多相关文章

  1. 20145334赵文豪网络对抗Web安全基础实践

    1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉 ...

  2. 20145308 《网络对抗》 MSF基础应用 学习总结

    20145308 <网络对抗> MSF基础应用 学习总结 实验内容 掌握metasploit的基本应用方式,掌握常用的三种攻击方式的思路.具体需要完成(1)一个主动攻击,如ms08_067 ...

  3. 2018-2019 20165221 网络对抗 Exp5 MSF基础

    2018-2019 20165221 网络对抗 Exp5 MSF基础 实践内容: 重点掌握metassploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实践,如ms0 ...

  4. 20145306 网路攻防 web安全基础实践

    20145306 网络攻防 web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 XSS攻击:Stored XSS Attacks.Reflected XSS At ...

  5. 20145308 《网络对抗》 逆向及BOF基础实践 学习总结

    20145308 <网络对抗> 逆向及BOF基础实践 学习总结 实践目的 通过两种方法,实现程序能够运行原本并不会被运行的代码 实践原理 利用foo函数的Bof漏洞,构造一个攻击输入字符串 ...

  6. 20155326《网络对抗》Web安全基础实践

    20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊 ...

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

    20145203盖泽双 <网络对抗技术>实践九:Web安全基础实践 1.实践目标 1.理解常用网络攻击技术的基本原理. 2.Webgoat下进行相关实验:SQL注入攻击.XSS攻击.CSR ...

  8. 20145236《网络对抗》Exp9 web安全基础实践

    20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 ...

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

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

随机推荐

  1. 一个vue的循环列表,里面的按钮的移入事件

    需求:移入的时候,互相关注变成取消关注 移入移出事件传参$event,把这个参数打印出来看就可以搞定,而不是移入的时候,文本都改变,只改变当前行 的文本 <p @mouseover=" ...

  2. the import XXXX cannot be resolved 解决方法

    明明XXX类完全没问题 突然就报错了 解决方法: 原因一:一个项目引用了兄弟项目的类,报错The import XXX cannot be resolved 解决办法:需要在引用的兄弟项目右键选择Ma ...

  3. 使用pycharm调试django项目

    要使用pycharm调试django 打断点调试后台代码,首先要进行一下配置: 1.debug 配置 打开debug界面 2.选择python点+加号,然后选择python 3.名字debug,这个看 ...

  4. Hibernate基础增删改查语法

    1.创建好Hibernate项目,创建好实体类和测试类,如果不会创建Hibernate项目的同学,点此处:http://www.cnblogs.com/zhaojinyan/p/9336174.htm ...

  5. Python底层库的函数中from __future__ import absolute_import的作用

    在查看TensorFlow的底层优化器时候看到from __future__ import absolute_import 查找相关资料后发现 这个语句的意思是加入绝对引用的特征 直白的意思是,比如: ...

  6. 7.线程id,优先级讲解

    1.线程id可以通过Thread对象的getId()方法得到,在线程出了问题,为什么CPU占用这么高的时候,查的时候我们可以在堆栈信息中找到对应线程,然后干掉该线程就好! 2.而线程对象的getNam ...

  7. ASP.NET JSON(转http://www.360doc.com/content/14/0615/21/18155648_386887590.shtml)

    概念介绍还是先简单说说Json的一些例子吧.注意,以下概念是我自己定义的,可以参考.net里面的TYPE的模型设计如果有争议,欢迎提出来探讨!1.最简单:{"total":0} t ...

  8. Mysql常规优化

    一.SQL语句优化 (1)使用limit对查询结果的记录进行限定(2)避免select *,将需要查找的字段列出来(3)使用连接(join)来代替子查询(4)拆分大的delete或insert语句 二 ...

  9. unity3D客户端框架

    unity3D客户端框架  博客

  10. 【Linux学习一】命令查看与帮助

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 一.Linux执行命令流程:shell->bash(解释器 执行 ...