Exp9 Web安全基础


一.基础性问答

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

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

防御:

  • 普通用户与系统管理员用户的权限要有严格的区分。
  • 强迫使用参数化语句。
  • 多多使用SQL Server数据库自带的安全参数。
  • 加强对用户输入的验证。

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

    原理:Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码,当用户浏览该页或者进行某些操作时,攻击者利用用户对原网站的信任,诱骗用户或浏览器执行一些不安全的操作或者向其它网站提交用户的私密信息。
    比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。
    防御:唯一能完全杜绝xss攻击的方法,就是禁用script,img等,显然这是不靠谱的,用户需要丰富的页面内容;当然我们可以用一些方法预防xss攻击,尽量减少xss造成的危害。

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

原理:依靠用户标识危害网站,利用网站对用户标识的信任,欺骗用户的浏览器发送HTTP请求给目标站点,另外可以通过IMG标签会触发一个GET请求,可以利用它来实现CSRF攻击。
防御:

  • 通过 referer、token 或者 验证码 来检测用户提交。
  • 尽量不要在页面的链接中暴露用户隐私信息。
  • 对于用户修改删除等操作最好都使用post 操作 。
  • 避免全站通用的cookie,严格设置cookie的域。

二、实验过程记录

实验准备:下载WebGoat,我下载的是8.0的版本,此处为下载的链接https://github.com/WebGoat/WebGoat/releases,在主机中下载完成后,拷贝到kali共享文件夹中后,在kali中输入命令,java -jar webgoat-server-8.0.0.M25.jar,成功启动后,在浏览器中输入localhost:8080/WebGoat进入界面,注册账户后登陆,即可开始做题。

sql注入题1

利用逻辑上的漏洞,题目要求是在不知道任何明确的用户姓名情况下,获得一份完整的列表,因此select * from user_data where first_name ='John' and last_name =''or '1' ='1',成功。

因为 or ‘1’ =‘1’是永真式,所以sql语句等价于or ture,。

sql注入题2(数字)

要求使用两个输入框,获得用户表的所有数据,只有一个框可以使用sql注入。

在第一个Login_Count框中输入任意字符,在User_id中输入任意字符+ or 1=1 --

由于不同数据库设计的注释符号不一样,有的是使用#,有的是使用--需要自己去尝试。

sql注入题3(字符)

你是一个叫约翰·史密斯的雇员,在一家大公司工作。公司有一个内部系统,允许所有员工查看自己的内部数据,比如他们工作的部门和薪水。

系统要求员工使用唯一的认证TAN来查看他们的数据。

你现在的肤色是3sl99a。

因为你总是渴望成为最有收入的员工,所以你想利用这个系统,而不是查看你自己的内部数据。看看你所有同事的数据,看看他们目前的薪水。

使用下面的表单,尝试从Employees表中检索所有员工数据。您不需要知道任何特定的名称或TAN来获得所需的信息。

您已经发现执行请求的查询看起来像这样
由于在上周的实验中做过类似的sql注入了,因此此题十分轻松。

用注释符号注释掉后面的内容,再加上or 1=1使得该式子成为永真式。

xss题1

要求再打开一个标签页,使用当前页面的url或者WebGoat登陆后的url,在后面添加javascript:alert(document.cookie);观察弹出的信息。


由于cookie的功能是获得当前的session号,由于是同一账号登陆,所以相同,填yes通过。

xss题2

下面的页面模拟评论/评论页面。这里的区别在于,您必须在其他地方启动提交,就像在CSRF攻击中一样,和前面的练习一样。在大多数情况下,棘手的部分是找到要执行CSRF攻击的某个地方。在大多数情况下,更棘手的部分是找到要执行CSRF攻击的地方。典型的例子是某人银行账户中的账户/电汇。
但我们在这里保持简单。在这种情况下,您只需要代表当前登录的用户触发一个审查提交。
因此我在每个框中都尝试了xss攻击,发现卡号那一栏最容易收到攻击。

csrf题1

这一题为获得flag数字的题,点击按钮后会发现flag出的值为null,因此吧false改成,true后刷新,得到flag的值,通过此题。


csrf题2

下面的页面模拟评论/评论页面。这里的区别在于,您必须在其他地方启动提交,就像在CSRF攻击中一样,和前面的练习一样。比你想象的容易。在大多数情况下,更棘手的部分是找到要执行CSRF攻击的地方。典型的例子是某人银行账户中的账户/电汇。
但我们在这里保持简单。在这种情况下,您只需要代表当前登录的用户触发一个审查提交。
在输入信息时反馈:消息发送给自己的主机,于是启动burpsuit,修改自己自己名称为127.0.0.1:9090,刷新揭秘那后成功。

总结

通过WebGoat这个工具使我掌握了一部分网站攻击的方法,而且其中还是其他许多的攻击方法,我觉得抽出空余时间来使用WebGoat学习,也不失为一个好点子。

20165213 Exp9 Web安全基础的更多相关文章

  1. 20155208徐子涵《网络对抗》Exp9 Web安全基础

    20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...

  2. 20155312 张竞予 Exp9 Web安全基础

    Exp9 Web安全基础 目录 基础问题回答 (1)SQL注入攻击原理,如何防御 (2)XSS攻击的原理,如何防御 (3)CSRF攻击原理,如何防御 实践过程记录 WebGoat准备工作 1.XSS攻 ...

  3. Exp9 Web安全基础

    Exp9 Web安全基础 20154305 齐帅 一.实验要求 本实践的目标理解常用网络攻击技术的基本原理. Webgoat实践下相关实验: [目录] [第一部分 WebGoat 8.0] 1.Web ...

  4. 20155205 郝博雅 Exp9 Web安全基础

    20155205 郝博雅 Exp9 Web安全基础 一.实验内容 一共做了13个题目. 1.WebGoat 输入java -jar webgoat-container-7.1-exec.jar 在浏览 ...

  5. 20155339 Exp9 Web安全基础

    Exp9 Web安全基础 基础问题回答 (1)SQL注入攻击原理,如何防御 原理:它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意SQL语句得到 ...

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

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

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

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

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

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

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

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

随机推荐

  1. [git] Updates were rejected because the tip of your current branch is behind its remote counterpart.

    场景 $ git push To https://github.com/XXX/XXX ! [rejected] dev -> dev (non-fast-forward) error: fai ...

  2. 深入分析 Docker 镜像原理

    摘要:近日, DaoCloud 软件工程师孙宏亮在 CSDN Container 微信群为大家带来了 Docker 镜像原理的深度分享,本次分享的重点是 Docker 镜像,分享的内容主要包含两个部分 ...

  3. 2.vi 和 vim 编辑器

    Linux系统的命令行下的文本编辑器 三种模式 一般模式:打开文档的默认模式 编辑模式 可以进行编辑,要按下  i  a  o  r 等字母后才能从一般模式进入编辑模式 按下ESC 退出编辑模式 命令 ...

  4. Delphi ClearCommError函数

  5. Mysql(三)-3:完整性约束

    一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...

  6. 在Linux中,当需要从磁盘读取块时,进程状态会发生什么变化?被封锁了吗?如果是这样,如何选择另一个流程来执行?

    当某个进程需要从磁盘中获取数据时,它实际上会停止在CPU上运行以让其他进程运行,因为该操作可能需要很长时间才能完成-至少需要5ms的磁盘寻道时间,而5ms就是1000万从程序的角度来看,CPU周期是永 ...

  7. windows漏洞MS03_026

    话不多说,直接进入正题 第一步查看是否能ping通,第二步就是扫描端口,开放了端口才能进行攻击 linux进入msfconsole,搜索03_026 search 03_026 等待一会,返回漏洞的全 ...

  8. redis-数据淘汰策略

    博客标题:Redis的数据淘汰策略及相关注意事项 配置redis.conf中的maxmemory这个值来开启内存淘汰功能 volatile-lru:从已设置过期时间的数据集(server.db[i]. ...

  9. debian docker环境搭建

    环境(阿里): 登陆到系统: 我们主要看执行结果截图(所有命令都进行复制) 卸载旧版本: 使用 APT 安装: 这里 输入 y  然后等待执行结束 添加软件源的 GPG 密钥. 一开始我是手打的命令, ...

  10. kotlin函数和函数式表达式

    这次的写法可能有些怪异,但是如果熟悉java8的Lambda表达式的话其实理解起来很顺其自然[参考博客:http://www.cnblogs.com/webor2006/p/7705130.html] ...