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. 抓包工具之tcpdump

    tcpdump 官网 -> http://www.tcpdump.org 1. 安装步骤 在官网分别下载 Tcpdump.Libpcap 这两个包链接 在安装Tcpdump之前,先安装Libpc ...

  2. js之数据类型(对象类型——构造器对象——函数1)

    函数它只定义一次,但可能被多次的执行和调用.JavaScript函数是参数化的,函数的定义会包括形参和实参.形参相当于函数中定义的变量,实参是在运行函数调用时传入的参数. 一.函数定义 函数使用fun ...

  3. vue报错Maximum call stack size exceeded at abort (webpack-internal:///./node_modules/_vue-router@3.1.3@vue-router/dist/vue-router.esm.js:2079)

    报错原因: import cellDetail from '@/components/common/dialog/cellDetail.vue'; 解决方法: import celldetail fr ...

  4. 3.Hibernate基础配置

    1.Hibernate.cfg.xml:hbm2ddl.auto 在SessionFactory创建时,自动检查数据库结构,或者将数据库schema的DDL导出到数据库 <property na ...

  5. 小白进阶之Scrapy第六篇Scrapy-Redis详解(转)

    Scrapy-Redis 详解 通常我们在一个站站点进行采集的时候,如果是小站的话 我们使用scrapy本身就可以满足. 但是如果在面对一些比较大型的站点的时候,单个scrapy就显得力不从心了. 要 ...

  6. /build-impl.xml:1030: The module has not been deployed.(netbean javaweb)

    我在netbean上创建了一个javaweb,这个项目创建成功了,但是运行时却有了错误,错误贴图如下 报错: The module has not been deployed.  See the se ...

  7. Redis03——Redis架构

    Redis架构 1.1.问题 redis是单线程,单实例,为什么并发那么多,依旧很快呢? 回答:因为调用了系统内核的epoll 1.2.Linux的早期版本 Linux有Linux kernal,我们 ...

  8. $q defer

    实际应该是这样更好理解 把,asyncGreet换成实际的http请求SyncRequest. 如果我们多个请求那么 就是多个 promise我们要么就是链式then,要么就是$q.all 可以根据需 ...

  9. FLUSH TABLES WITH READ LOCK 获取锁的速度

    最近有一台MySQL的从库老是报延迟,观察到:FLUSH TABLES WITH READ LOCK,阻塞了4个多小时,还有另外一条SQL语句select *,从现象上来看是select * 阻塞了f ...

  10. TF启程

    我第一次开始接触到TensorFlow大概是去年五月份,大三下,如果一年多已过,我却还在写启程..这进度,实在汗颜.. 一个完整的tensorflow程序可以分为以下几部分: Inputs and P ...