漏洞扫描基本概念

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漏洞扫描基本概念相关的知识,希望对你有一定的参考价值。

参考技术A

title: 漏洞扫描基本概念
date: 2016-06-15 10:30
tags: Kali渗透测试 漏洞扫描

通过之前的扫描我们可以知道目标主机的一些基本信息,然后我们可以基于这些个基本信息去进一步的发现目标是否存在漏洞,当然这种方式虽然可行,但是效率太低。

对于这方面,kali的提供了一个漏洞集成网站: https://www.exploit-db.com/

同时kali系统也集成了searchsploit命令,该命令可以查询到eploit-db网站中所有的漏洞信息。

由此也可以知道searchsploit的文档库的位置为: /usr/share/exploit/platforms

然后我们只需要对其中的脚本只进行简单的修改就可以加以利用了。

Sandi将会以图形化的界面对exploit-db库中结果进行显示。

CVSS是通用的漏洞评分系统,它是工业标准,用于描述安全漏洞严重程度的统一评分方案。

CVSS使用Metric对弱电进行了分类:

CVSS是安全内容自动化协议(SCAP)的一部分。通常CVSS与CVE一同由美国国家漏洞库(NVD)发布并保持数据的更新。

CVSS的评分范围是:0-10。10是最高等级,不同机构按CVSS分值定义威胁的中,高,低 威胁级别 ,CVSS是工业标准,但是威胁等级级别不是。

CVE是已公开的信息安全漏洞字典,同时也是统一的漏洞编号标准。
因为CVE的存在,使得漏洞的世界秩序变得清晰可辨。

当发现一个漏洞后,CAN负责指定CVE ID,然后发布到CVE LIst中:CVE-2008-4250,然后MITRE公司负责对内容进行编辑维护。

同时有的厂商也会有自己的CVE标准,比如微软的MS漏洞编号,MSKB为补丁编号。不同组织不同机构也许会有不同的CVE标准。

描述漏洞检测方法的机器可识别语言。会以xml的格式进行发布。它是一个技术性的描述。它详细的描述了漏洞检测的技术细节,可导入自动化检测工具中实施漏洞检测工作。

描述软件配置缺陷的一种标准格式。
在信息安全风险评估中,配置缺陷的检测是一项重要内容,使用CCE可以让配置缺陷以标准的方式展现出来,便于配置缺陷评估的可量化操作。

信息技术产品,系统,软件包的结构化命名规范,分类命名标准。

常见漏洞类型的字典,描述不同类型漏洞的特征,不同于OVAL,CWE只是一个大体上的分类而已,不会去具体的打分(访问控制,信息泄露,拒绝服务)。

SCAP是一个集合了多种安全标准的框架,它共有六个子元素:CVE,OVAL,CCE,CPE,CVSS,XCCDF。其目的是以标准的方法展示和操作安全数据。有NIST负责维护。

框架是个很有效率的东西,美国人民很擅长做框架的东西,因为一般只要完成了框架里所要求的事情,基本上就很规范了。所以,SCAP是当前美国比较成熟的一套信息安全评估标准体系,其标准化,自动化的思想对信息安全行业产生了深远的影响。

SCAP主要解决三个问题:

由于SCAP太完美,太细致啦,所以太复杂了,目前这个星球上完全安装按照SCAP标准去干的,只有NVD(National Vulnerabiliy Database:美国国家漏洞管理标准数据)一家。

NVD: https://nvd.nist.gov/

nvd的CheckList是很好用的。

JAVA基础-----IO流基本概念


前言

其实写io流类的文章有很多,不过近期要考试了,内容是io流,就当整理下来复习一下,也许写的和很多大佬相比相差很多,所以不足之处还请各位师傅不吝赐教。本博文代码主要参考b站鸟哥JAVA零基础之IO流详解视频【IntelliJ IDEA版-输入输出流】以及自己的一些补充。


一、文件的简单操作

1.文件的创建

书上对于io流的讲解较为生涩,先从文件的处理入手,下面代码演示的是创建一个新的文件,是否成功取决于你电脑此路径下有没有这个文件,如果文件存在那么创建失败,如果不存在则创建成功
同理,我们对于文件夹,以及文件夹下套文件夹,也就是多级文件夹都可以进行相似的操作,具体操作如代码所示。

package homework;//CSDN-敲代码的xiaolang

import java.io.File;
import java.io.IOException;

public class File_Demo01 
    public static void main(String[] args) 
        try 

            File file1 = new File("E:\\\\test.txt");
            boolean flag1 = file1.createNewFile();//创建一个新的文件,如果文件存在那么创建失败,如果不存在则创建成功。
            System.out.println(flag1?"文件创建成功":"文件创建失败");

            File file2 = new File("E:\\\\java_test");
            boolean flag2 = file2.mkdir();//创建一个新的文件夹
            System.out.println(flag2?"文件夹创建成功":"文件夹创建失败");

            File file3 = new File("E:\\\\java_io\\\\io\\\\test");
            boolean flag3 = file3.mkdirs();//创建一个新的多级文件夹
            System.out.println(flag3?"多级文件夹创建成功":"多级文件夹创建失败");

         catch (IOException e) 
            e.printStackTrace();
        
    


运行结果如图所示,你也可以在你的电脑对应路径下面找到相应的文件。

2.文件的删除

对于删除操作,这里先简单使用delete方法,我们直接让文件去调用即可。

package homework;//CSDN-敲代码的xiaolang

import java.io.File;

public class File_Demo02 
    public static void main(String[] args) 
        File file1 = new File("E:\\\\test.txt");
        boolean flag = file1.delete();
        System.out.println(flag?"文件删除成功":"文件删除失败");
    


3.文件是否存在

原理也是比较简单的,我们先判断是否存在,使用exists方法。

package homework;//CSDN-敲代码的xiaolang

import java.io.File;

public class File_Demo03 
    public static void main(String[] args) 
        File file = new File("E:\\\\test");
        boolean flag = file.exists();
        if(flag)
            System.out.println("文件已经存在");
        else
            file.mkdir();
        
    


4.文件内所包含字节数

我们事先在file文件里面写入xiaolang,然后使用length方法去返回所含字节的大小。

String字符串:length(),返回字符串中字符的个数
数组,数组名.length ,属性,获取数组里面元素的个数
集合, 集合对象名.size(),返回集合中元素的个数

package homework;//CSDN-敲代码的xiaolang

import java.io.File;
import java.io.IOException;

public class File_Demo04 
    public static void main(String[] args) 
        File file = new File("E:\\\\xiaolang.txt");
        try 
            file.createNewFile();
            Long size = file.length();
            System.out.println("size="+size);
         catch (IOException e) 
            e.printStackTrace();
        
    



5.文件的名字和路径

package homework;//CSDN-敲代码的xiaolang

import java.io.File;
import java.io.IOException;

public class File_Demo04 
    public static void main(String[] args) 
        File file = new File("E:\\\\xiaolang.txt");
        try 
            String fileName = file.getName();
            System.out.println("fileName="+fileName);

            String path = file.getPath();
            System.out.println("path="+path);

         catch (Exception e) 
            e.printStackTrace();
        
    


6.使用递归的方法扫描文件夹

思路就是:先判断文件是否是文件夹,是文件夹的话,选择某个文件夹下所有文件,如果不是文件夹,获取此文件夹的路径。

package homework;//CSDN-敲代码的xiaolang

import java.io.File;

public class File_Demo05 
    public static void showFile(String pathname)
        File file = new File(pathname);
        boolean flag = file.isDirectory();
        if(flag)
            File[] files = file.listFiles();
            for(int i =0;files!=null&&i<files.length;i++)
                boolean flag1 = files[i].isDirectory();
                if(flag1)
                    showFile(files[i].getPath());
                else
                    String filePath = file.getPath();
                    System.out.println("普通文件---》"+filePath);
                
            
        else
            String filePath = file.getPath();
            System.out.println("普通文件---》"+filePath);
        
    

    public static void main(String[] args) 
        File_Demo05.showFile("E:\\\\");//扫描E盘
    


我的E盘基本没有文件,所以比较容易看到所有的结果。

二、输入输出流

首先用一张图带你了解基本模式:

1.FileInputStream

代码部分注释掉的部分和下面引用中代码的意思是一样的,只不过更加简洁。

FileInputStream fileInputStream = new FileInputStream(“E:\\xiaolang.txt”);

package homework;//CSDN-敲代码的xiaolang

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class File_Demo06 
    public static void main(String[] args) 
        try 
             /*File file = new File("E:\\\\xiaolang.txt");
            if(file.exists()&&file.length()>0)
            FileInputStream fileInputStream = new FileInputStream(file);
        */
            FileInputStream fileInputStream = new FileInputStream("E:\\\\xiaolang.txt");

            int ch = 0;
            while((ch=fileInputStream.read())!=-1)
                System.out.println((char)ch);//控制换行
            
            fileInputStream.close();
         catch (Exception e) 
            System.out.println("文件找不到");
        
    


2.FileOutputStream

下面的栗子是我在E盘创建了一个文件,然后把它拷贝到我们的D盘去,这里注意使用file去调用read方法,而使用file1去调用write方法,然后我们统计一下所需要耗费的时间。

package homework;//CSDN-敲代码的xiaolang

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class File_Demo08 
    public static void main(String[] args) 
        try 
            long startTime = System.currentTimeMillis();
            FileInputStream file = new FileInputStream("E:\\\\xiaolang.txt");
            FileOutputStream file1 = new FileOutputStream("D:\\\\xiaolang.txt");
            int ch = 0;
            while ((ch = file.read()) != -1) 
                file1.write(ch);
            
            file.close();
            file1.close();
            long endTime = System.currentTimeMillis();
            System.out.println("共消耗"+(endTime-startTime)+"ms");
         catch (Exception e) 
            System.out.println("文件找不到");
        
    


3.BufferedInputStream

我们对上面的栗子进行一些改动,我们使用BufferedInputStream去更快的读取文件,BufferedInputStream继承于FilterInputStream,本质上是通过一个内部缓冲区数组实现的,用read读取输入流的数据时,BufferedInputStream会将该输入流的数据分批次的导入缓冲区。当缓冲区中的数据被读完后,输入流会再次填充缓冲区中的数据;如此循环往复下去,直到读完输入流数据结束。

package homework;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class File_Demo09 
    public static void main(String[] args) 
        InputStream inputStream = null;
        try 
            inputStream = new FileInputStream("E:\\\\xiaolang.txt");
            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
         catch (FileNotFoundException e) 
            e.printStackTrace();
        
    


获取时间差和所含字节数:

package homework;//CSDN-敲代码的xiaolang

import jdk.swing.interop.SwingInterOpUtils;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class File_Demo09 
    public static void main(String[] args) 
        InputStream inputStream = null;
        try 
            long startTime = System.currentTimeMillis();
            inputStream = new FileInputStream("E:\\\\xiaolang.txt");
            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
            byte[] temp = new byte[1024];
            int len = 0;
            while((len = bufferedInputStream.read(temp))!=-1)
                System.out.println(len);
            
            long endTime = System.currentTimeMillis();
            System.out.println("共消耗"+(endTime-startTime)+"ms");
         catch (Exception e) 
            e.printStackTrace();
        
    


4.FileReader读取文件所含字节数

package homework;//CSDN-敲代码的xiaolang

import java.io.FileNotFoundException;
import java.io.FileReader;

public class File_Demo10 
    public static void main(String[] args) 
        try 
            FileReader fileReader = new FileReader("E:\\\\xiaolang.txt");
            char[] temp = new char[1024];
            int len = 0;
            while((len=fileReader.read(temp))!=-1)
                System.out.println(len);
            
            fileReader.close();
         catch (Exception e) 
            e.printStackTrace();
        

    


5.FileReader获取文本内容

package homework;//CSDN-敲代码的xiaolang

import java.io.FileNotFoundException;
import java.io.FileReader;

public class File_Demo10 
    public static void main(String[] args) 
        try 
            FileReader fileReader = new FileReader("E:\\\\xiaolang.txt");
            char[] temp = new char[1024];
            int len = 0;
            while((len=fileReader.read(temp))!=-1)
                String s = new String(temp,0,len);
                System.out.println(s);
            
            fileReader.close();
         catch (Exception e) 
            e.printStackTrace();
        

    


6.FileWriter修改文本内容

这个栗子是直接写入:“玛卡巴卡balabala”

package homework;//CSDN-敲代码的xiaolang

import java.io.FileWriter;
import java.io.IOException;

public class File_Demo11 
    public static void main(String[] args) 
        try 
            String s = "玛卡巴卡balabala";
            FileWriter fileWriter = new FileWriter("E:\\\\makabaka.txt");
            fileWriter.漏洞基本概念

【转】DRM (二)基本概念

SQL注入的基本原理

CSRF漏洞的概念利用方式防御方案

安全牛学习笔记漏洞概念

网络安全管理设备