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. django 上传路径至vue处理组件加载

    1,在主目录(项目目录)下新建中间件middleware.py文件 写入 from django.utils.deprecation import MiddlewareMixin from djang ...

  2. javascript&jquery方法比对

    参考链接:https://juejin.im/post/5d2705d8e51d4577407b1dda 参考评论链接http://youmightnotneedjquery.com/ javascr ...

  3. fastadmin Excel导出时数字被科学计数

    /public/assets/libs/bootstrap-table/dist/extensions/export/bootstrap-table-export.min.js //exportOpt ...

  4. NETGEAR 系列路由器命令执行漏洞简析

    NETGEAR 系列路由器命令执行漏洞简析 2016年12月7日,国外网站exploit-db上爆出一个关于NETGEAR R7000路由器的命令注入漏洞.一时间,各路人马开始忙碌起来.厂商忙于声明和 ...

  5. 【原创】马哥 文本三剑客之awk

    命令 awk 全称: man搜索: 简述 基本用法 选项 用法与实验 print 打印 (1)(2)(3) 变量 1.内建变量 FS与OFS RS与ORS NR与FNR NF ARGC与ARGC 2. ...

  6. Manticore search加一个中文分词

    Sphinx search 是一款非常棒的开源全文搜索引擎,它使用C++开发,索引和搜索的速度非常快,我使用sphinx的时间也有好多年了.最初使用的是coreseek,一个国人在sphinxsear ...

  7. 并发编程:生产消费模型、死锁与Rlock、线程、守护线程、信号量、锁

    一.生产者消费者模型1 二.生产者消费者模型2 三.守护线程 四.常用方法 五.启动线程的另一种方式 六.锁 七.锁死 八.死锁 九.单个锁能不能死锁 十.信号旗 一.生产者消费者模型1 import ...

  8. centos6下yum安装mariadb数据库的解决方法

    在centos6下Yum安装mariadb数据库时老是提示无法正常安装,看错误日志才发现,是没有mariadb release源文件在/etc/yum.repos.d/中,为此,我特意在新建文件: # ...

  9. windows 快捷键收集

    1. 放大镜 windows徽标 + "+“ 2. 直接显示桌面 windows徽标 + D 3. 收起所有窗口 windows徽标 + M 4. 浏览器中恢复之前关闭的页面 Ctrl + ...

  10. springboot-拦截器redis注入空问题解决

    转自:https://blog.csdn.net/liuyang1835189/article/details/81056162 主要问题是在拦截器的配置类里面,配置的类,spring容器无法获取,所 ...