20145230熊佳炜《网络对抗》实验九:web安全基础实践

webgoat

  • webgoat的中文是代罪羔羊的意思,而它是一个有很多漏洞的web应用程序,我们可以利用它来研究关于web应用程序的安全性。
  • 在我们的kali虚拟机中输入java -jar webgoat-container-7.0.1-war-exec.jar即可运行我们的webgoat。
  • webgoat默认使用的是8080端口,打开火狐浏览器,可以进入到webgoat的主页,我们可以找到自己感兴趣的题目进行练习。

Phishing with XSS

  • 首先我们需要在搜索栏中输入攻击代码,输入完毕之后点击search。
  • search完毕之后它会要求我们输入用户名和密码。
  • 输入完毕之后选择确定就可以成功攻击了。

Stored XSS Attacks

  • 我们需要创建一个帖子,然后让它在弹出的窗口中显示出来。
  • 在标题栏可以随便输入任何指令,消息那一栏需要写入我们的代码。
  • 然后点击我们刚才创建的帖子就会看到弹窗,表面攻击成功。

Reflected XSS Attacks

  • 还是感觉和上一个Stored XSS攻击的方法差不多。
  • 在access那一栏输入一个攻击代码,点击purchase后,如果弹出我们输入的代码的内容,就表示我们攻击成功了。

Cross Site Request Forgery

  • CSRF就是冒名登录,用代码伪造请求。
  • 写一个URL诱使其他用户点击,从而触发CSRF攻击。
  • 还是通过在消息栏输入攻击代码,然后用户点击后会显示我们已经攻击成功了。

CSRF Prompt By-Pass

  • 这个和上一个题目攻击方法也是相对比较类似的,但在消息栏输入我们的攻击代码并不能成功。
  • 所以只能通过浏览器输入,输入后会看到confirm选项,点击它。
  • 最后刷新一下网页,会发现我们已经成功转账。

String SQL Injection

  • 这个题目相对来说极其简单,就是我们在web基础里面SQL也用到的' or 1=1 --'这个式子,因为这个式子是一个永真式,所以输入完后点击go,会发现会显示出所有的结果。

LAB:SQL Injection(Stage 1:String SQL Injection)

  • 这个题目原理还是要求我们利用' or 1=1 --'这个永真式,但是没有上一题那样简单。
  • 这一题我们登陆密码换成了1=1也无济于事,因为网页源码中限制了密码最大长度。
  • 我们通过查看网页源码,将最大密码长度修改之后,再登录,便会发现我们成功。

Database Backdoors

  • 这是一个关于修改后台数据的一道题目。
  • 我们先输入101可以查看到larry的信息,然后我们可以通过攻击代码修改larry的工资信息。
  • 在username那我们还可以新建一个后门,将自己的用户名和邮箱应用于数据库中所有用户,这就表明攻击成功。

Log Spoofing

  • 这个题目其实顾名思义,就是登陆欺骗用户。
  • 原理就是我们输入错误的用户名后,它返回给我们的信息还是我们登陆成功。也就是我们要在用户名那写一个SQL的字符串。

Command Injection

  • 这个界面可以执行系统命令并返回给用户。
  • 所以我们可以用BurpSuite拦截到一个请求,然后修改其中的参数。最后我们在网页中可以看到修改过后要我们显示的结果。

感受

  • 不知道为什么,做这次最后一次实验的时候电脑会出奇的卡,写了很久的东西,眼看快要完成了,电脑莫名其妙的未响应,一天连续出现了好几次。反正很烦,甚至想砸电脑,可能是天气太热了,电脑可能温度太高了吧。自己大概了解了关于SQL和XSS攻击的一些套路吧,但感觉要想更加深入了解,需要自己花很多功夫,不是模仿其他人做几道练习就能成功的。希望自己能控制好自己的情绪,努力学习吧。

基础问答

1.实验后回答问题

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

答:

原理:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

防御: 普通用户与系统管理员用户的权限要有严格的区分, 要强迫使用参数化语句,加强对用户输入的验证,多多使用SQL Server数据库自带的安全参数,必要的情况下使用专业的漏洞扫描工具来寻找可能被攻击的点。

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

答:

原理:XSS是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。

防御:对用户输入数据进行输入检查,也要进行输出检查,对用户输入的html 标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。  

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

答:

原理:CSRF通过伪装来自受信任用户的请求来利用受信任的网站。

防御:将持久化的授权方法切换为瞬时的授权方法,在form中包含秘密信息、用户指定的代号作为cookie之外的验证。

20145230熊佳炜《网络对抗》实验九:web安全基础实践的更多相关文章

  1. 20145233《网络对抗》Exp9 Web安全基础实践

    20145233<网络对抗>Exp9 Web安全基础实践 实验问题思考 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...

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

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

  3. 20155324《网络对抗技术》web安全基础实践

    20155324<网络对抗技术>web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在 ...

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

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

  5. 20145215《网络对抗》Exp9 Web安全基础实践

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

  6. 20145208 蔡野 《网络对抗》Exp9 web安全基础实践

    20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...

  7. 20145311王亦徐 《网络对抗技术》 Web安全基础实践

    2014531王亦徐 <网络对抗技术> Web安全基础实践 实验内容 利用WebGoat平台尝试了一些XSS.CSRF.SQL注入攻击 基础问题回答 1.SQL注入攻击原理,如何防御原理: ...

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

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

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

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

  10. 20155204《网络对抗》Exp9 Web安全基础实践

    20155204<网络对抗>Exp9 Web安全基础实践 一.基础问题回答 SQL注入攻击原理,如何防御? 原理: SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以 ...

随机推荐

  1. EXSI5.5以上开启KVM二次虚拟化

    1,在EXSI5.5上创建centos虚拟机(过程省略) 2,开启EXSI5.5的ssh功能 3,ssh登录虚拟机 4,编辑虚拟配置文件 /vmfs/volumes/datastore1/目录下,找到 ...

  2. CXF整合Spring之JaxWsProxyFactoryBean调用

    1.见解 1.1 客户端的接口代码还一定要和服务端的接口代码一样,连注解都要一样,不够灵活 1.2 当客户端访问服务器的请求地址时,如果服务端没有对应的地址,就会报错,但是又没有cxf的异常捕获处理 ...

  3. 演示一个简单的Redis队列

    0.Windows Service版下载 https://github.com/rgl/redis/downloads 1.新建一个Console项目 打开Nuget控制台,执行以下命令 Instal ...

  4. BroPHP使用心得

    使用BroPHP 学习框架的时候,遇到了不少的问题. 一.修改了mysql 的表结构后,在程序中始终不体现表的修改. 给一个表添加了几个字段,在程序中对表添加数据,无论是用 select(),还是用 ...

  5. 该死的Kafka,远程连接Kafka超时以及解决办法

    关于消息的发布与订阅,之前一直使用的是activeMQ基于JMS的消息队列进行操作的,最近听说有一个更高效的消息的发布与订阅技术,就是Kafka. 关于kafka的介绍,在这里就不做过多讲解了,因为我 ...

  6. 多线程入门-第六章-线程的调度与控制之join

    /* 线程合并:将指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程,即单线程. 如在B线程中调用了A的join方法,则线程A执行完后,才会执行线程B. */ public cla ...

  7. css冲突2 要关闭的css在项目代码以外,但是是通过<link>标签引入的css(例如bootstrap):解决方法,在APP.css中使用全局样式

    css冲突,导致html字体过小. 通过浏览器检查发现,导致字体过小的css来自bootstrap. 现要关闭bootstrap的css: 直接在APP.css中添加: html{ font-size ...

  8. python模块之PIL模块(生成随机验证码图片)

    PIL简介 什么是PIL PIL:是Python Image Library的缩写,图像处理的模块.主要的类包括Image,ImageFont,ImageDraw,ImageFilter PIL的导入 ...

  9. Spring-ApplicationContext容器

    Spring ApplicationContext容器 ApplicationContext是spring中比较高级的容器.和BeanFactory类似,它可以加载配置文件中定义的bean,并将所有b ...

  10. 前端 javascript 变量

    变量: python: name = 'alex' JavaScript: name = 'alex' # 全局变量 声明var var name = 'eric' # 局部变量 写全局变量基本好少J ...