Exp9 Web安全基础

XSS

1.Phishing with XSS

  • 跨站脚本攻击,在表单中输入超文本代码

  • 在网页中形成一个自制的登陆表单,然后将结果反馈到自己的主机上。

  • 攻击成功

    2.Stored XSS Attacks

  • 存储型XSS攻击
  • 在信息栏中输入一段js代码,提交之后,让点击这个评论的人触发xss

  • 结果

3 Reflected XSS Attacks

  • 反射型XSS攻击
  • 在enter your three digit access code:处输入一段简单的js代码。

CSRF

4 Cross Site Request Forgery(CSRF)

  • 此题是要写一个URL诱使其他用户点击,从而触发CSRF攻击,我们可以以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件

  • 在信息栏中输入恶意代码

  • 点击提交
  • 成功

5 CSRF Prompt By-Pass

  • 此题包括了两个请求,一是转账请求,二是确认转账成功请求,即需要额外传递两个参数给服务器(transferFunds=4000,transferFunds=CONFIRM)
  • 先进入转账请求地址

  • 点击confirm
  • 修改语句进入成功地址

SQL

6 Command Injection

  • 在目标主机上执行系统命令,通过火狐浏览器下的Firebug对源代码进行修改,在BackDoors.help旁边加上"& netstat -an & ipconfig":

  • 选中修改项,点击view

  • 出现网络连接情况

7 Numeric SQL Injection

  • 要显示全部的天气信息,观察数据库语句是要搜索station来显示相应的信息。
  • 通过修改station选择的语句,然后让它没有选择,直接全部显示。

  • 所以修改之后,点击Columbia提交,实际上提交了一个永真式。

  • 全部显示,成功。

8 Stage 1:String SQL Injection

  • 这是老师上课演示的题目,知道密码的输入长度被限制,所以先修改html代码。

  • 修改之后输入’ or 1=1 --密码

  • 登陆成功。

9 Stage 3:Numeric SQL Injection

  • 课上演示实验中用到了burpsuite,所以这个实验中的登陆就先用一下burpsuite。

  • 然后修改html代码,使提交数据的时候,提交到后台的员工号变成查找那个工资最高的员工号,然后显示工资最高的也就是老板的账号信息。

10 String SQL Injection

  • 这个非常简单,选择语句都已经给好了,直接输入' or 1=1 --

  • 获取成功

问题回答

  • SQL注入攻击原理,如何防御
  • SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
  • 防御:1.检查变量数据类型和格式,前端js检查是否包函非法字符。2.过滤特殊符号,对于无法确定固定格式的变量,一定要进行特殊符号过滤或转义处理。3.绑定变量,使用预编译语句,MySQL的mysqli驱动提供了预编译语句的支持,不同的程序语言,都分别有使用预编译语句的方法。
  • XSS攻击的原理,如何防御
  • XSS分三类,存储型XSS、反射型XSS、DOM-XSS。
    存储型XSS:数据库中存有的存在XSS攻击的数据,返回给客户端。若数据未经过任何转义。被浏览器渲染。就可能导致XSS攻击。
    反射型XSS:将用户输入的存在XSS攻击的数据,发送给后台,后台并未对数据进行存储,也未经过任何过滤,直接返回给客户端。被浏览器渲染。就可能导致XSS攻击。
    DOM-XSS:纯粹发生在客户端的XSS攻击。
  • XSS防御—输入输出的过滤和数据转义
  • 输入:客户端求情参数:包括用户输入,url参数、post参数。
  • 输出:即使在客户端对用户的输入做了过滤、转义,攻击者一样可能,通过截包,转发等手段,修改你的请求包体。最终还是要在数据输出的时候做数据转义。
  • CSRF攻击原理,如何防御
  • CSRF全称 Cross Site Request Forgery, 跨站域请求伪造。
  • 攻击过程:1假设abc用户登录银行的网站进行操作, 同时也访问了攻击者预先设置好的网站.2abc点击了攻击者网站的某一个链接,这个链接是http://www.bank.com/xxxx指向银行,银行服务器会根据这个链接携带的参数会进行转账操作.3银行服务器在执行转账操作之前会进行SESSION验证是否登录, 但是由于abc已经登录了银行网站,攻击者的链接也是www.bank.com.所以攻击的链接就会携带session id到银行服务器.4由于session id是正确的,所以银行会判断操作是由本人发起的,执行转账操作.
  • 两种防御手段
  • referer 验证
  • 根据HTTP协议,在http请求头中包含一个referer的字段,这个字段记录了该http请求的原地址.通常情况下,-执行转账操作的post请求www.bank.com/transfer.php应该是点击www.bank.com网页的按钮来触发的操作,这个时候转账请求的referer应该是www.bank.com.而如果黑客要进行csrf攻击,只能在自己的网站www.hacker.com上伪造请求.伪造请求的referer是www.hacker.com.所以我们通过对比post请求的referer是不是www.bank.com就可以判断请求是否合法.
  • token 验证
  • 从上面的样式可以发现,攻击者伪造了转账的表单,那么网站可以在表单中加入了一个随机的token来验证.token随着其他请求数据一起被提交到服务器.服务器通过验证token的值来判断post请求是否合法.由于攻击者没有办法获取到页面信息,所以它没有办法知道token的值.那么伪造的表单中就没有该token值.服务器就可以判断出这个请求是伪造的.

    实验体会

    本次实验是最后一次实验了,本次实验借助webgoat实现对web的攻击,实现对数据库安全上的攻击,对html前端代码的攻击,也有使用burpsuite对发送的数据包进行截取修改再发送。理解了对网站的一般攻击步骤,同时也学到了对于不同的攻击应该如何防范。

20155209 林虹宇 Exp9 Web安全基础的更多相关文章

  1. 20155209林虹宇逆向及Bof基础实验报告

    20155209林虹宇逆向及Bof基础实验报告 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符 ...

  2. 20155209 林虹宇 Exp 8 Web基础

    Exp 8 Web基础 Web前端HTML 正常安装.启停Apache kali本机自带apache,上个实验已经使用过,直接使用 查看80端口. 127.0.0.1 编写一个含有表单的html 在浏 ...

  3. 20155209林虹宇 Exp7 网络欺诈防范

    Exp7 网络欺诈防范 简单应用SET工具建立冒名网站 kali要作为web服务器让靶机访问冒名网站,所以要使用阿帕奇web服务器软件. 要阿帕奇使用80端口.进入配置文件/etc/apache2/p ...

  4. 20155209林虹宇Exp4 恶意代码分析

    Exp4 恶意代码分析 系统运行监控 使用schtasks指令监控系统运行 新建一个txt文件,然后将txt文件另存为一个bat格式文件 在bat格式文件里输入以下信息 然后使用管理员权限打开cmd, ...

  5. 20155209 林虹宇 Exp3 免杀原理与实践

    Exp3 免杀原理与实践 使用msf生成后门程序的检测 将上周msf生成的后门文件放在virscan.org中进行扫描 结果很危险 使用msf编码一次进行扫描 使用msf编码10次进行扫描 结果同样很 ...

  6. 20155209 林虹宇Exp2 后门原理与实践

    Exp2 后门原理与实践 实验内容 一.使用netcat获取主机操作Shell,cron启动 使用netcat获取主机操作Shell Win获得Linux Shell 查看win的ip地址 windo ...

  7. 20155209林虹宇 Exp6 信息搜集与漏洞扫描

    Exp6 信息搜集与漏洞扫描 1.信息收集 1.1通过DNS和IP挖掘目标网站的信息 whois查询 进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务 ...

  8. 20155209林虹宇虚拟机的安装及一点Linux的学习

    预备作业3 虚拟机的安装 首先,我先了解了一下Linux和安装虚拟机的有关常识. Linux:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支 ...

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

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

随机推荐

  1. OpenCV多版本管理

    OpenCV在Ubuntu下经常会安装多个版本,比如默认版本,自己安装的,ros安装的等等.有时候需要给程序指定某个OpenCV版本,网上有一些方法,但还是会遇到很多问题. 这里提供一种选择,即指定O ...

  2. Android热修复之 - 阿里开源的热补丁

    1.1 基本介绍 我们先去github上面了解它https://github.com/alibaba/AndFix 这里就有一个概念那就AndFix.apatch补丁用来修复方法,接下来我们看看到底是 ...

  3. Android--根据子控件的大小自动换行的ViewGroup

    1.自定义ViewGroup /** * Created by Administrator on 2016/2/26. * * --------自动换行的ViewGroup----------- */ ...

  4. springcloud 入门 6 (断路器hystrix)

    hystrix:断路器 断路器是为了解决服务故障的“雪崩”,   雪崩是指,由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请 ...

  5. Android的.so文件、ABI和CPU的关系

    Android的.so文件.ABI和CPU的关系有篇文章描述的很详细了 见 http://blog.csdn.net/xx326664162/article/details/51163905

  6. 转:ASP.NET前台代码绑定后台变量方法总结

    经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般有<%= str%>和<%# str %>两种方式,这里简单总结一下.如有错误或异议之处,敬请各位指教. 一方 ...

  7. Mariadb配置Galera集群

    一.增加MariaDB源 cd /etc/yum.repos.d vi MariaDB.repo # MariaDB 10.1 CentOS repository list - created 201 ...

  8. fedora 中从命令行中直接打开资源管理器

    windows 中 使用 start . 可以实现 macos 中 使用 open . 可以实现 linux 中 可以使用 nautilus . 可以实现 了解nautilus 详细的使用说明,可以 ...

  9. VMware 导出镜像文件供 Virtual Box 使用

    1. 问题描述 Windows 系统安装的 VMware 里的安装配置好的虚拟机需要拷贝到 MAC 的 Virtual Box 中. 需要将 VMware 中的虚拟机导出为镜像文件供 Virtual ...

  10. MySQL基础之 支持的数据类型

    MySQL的数值类型 整数类型 字节 有符号 无符号 TINYINT 1 -128~+127 0~255 SAMLLINT 2 -32768~+32767 0~65535 MEDIUMINT 3 -8 ...