什么是网站扫描

网站编辑2020-08-24 11:11:37580

  网站扫描针对的对象则是以网站应用为主,它相当于对企业的网站业务进行黑盒扫描。当然,如果需要的话,代码扫描可以对网站应用进行代码级的白盒扫描。与资产扫描、漏洞扫描不同的是,网站扫描虽然也属于漏洞扫描的一种,但它关心的是由企业开发人员在编程过程中引发的漏洞,或者是由于业务逻辑设计不合理而产生的漏洞。
  
  1.网站爬虫
  
  由于是针对网站应用进行的扫描,所以利用爬虫遍历网站中的所有页面就变得必不可少了。在网站扫描领域,利用爬虫主要是希望对网站的资产能够进行全面了解和梳理,因为在多数情况下,我们并不需要把网站的页面内容抓取下来,只要能够遍历所有的页面即可。
  
  在网页遍历过程的某些场景下,还需要进行登录扫描,主要是因为在企业网站中,有些页面只有在成功登录后才能访问到。常见的网站登录扫描方式有两种,一种是把在登录页面中需要填写提交的内容记录下来,然后模拟登录过程,另一种是把登录后的Cookie提取出来,用作登录凭证。
  
  有关爬虫技术的相关文档及自动化的工具大家可以自行了解,此处不再赘述。下面提供一个简单的爬虫。
  
  import java.io.IOException;
  
  import java.net.SocketTimeoutException;
  
  import java.net.URI;
  
  import java.net.URISyntaxException;
  
  import java.net.UnknownHostException;
  
  import java.util.ArrayList;
  
  import org.jsoup.HttpStatusException;
  
  import org.jsoup.Jsoup;
  
  import org.jsoup.UnsupportedMimeTypeException;
  
  import org.jsoup.nodes.Document;
  
  import org.jsoup.nodes.Element;
  
  import org.jsoup.select.Elements;
  
  public class Crawler {
  
  static String initial_uri_string = "http://news.sina.com.cn";
  
  static String domain = "sina.com.cn";
  
  public static void main(String[] args) {
  
  URI newURI;
  
  URI baseURI = null;
  
  int index = 0;
  
  String uriString;
  
  ArrayList<String> uriStringAL = new ArrayList<String>();
  
  uriStringAL.add(initial_uri_string);
  
  do {
  
  uriString = uriStringAL.get(index++);
  
  System.out.println("(" + index + "/" + uriStringAL.size() + ") Crawling " + uriString + " ... ");
  
  try {
  
  baseURI = new URI(uriString);
  
  Document doc =  Jsoup.connect(uriString).userAgent("Mozilla/5.0").get();
  
  Elements es = doc.getElementsByTag("a");
  
  for (Element e:es) {
  
  newURI =
  
  baseURI.resolve(e.attr("href"));                    if (newURI.getHost().endsWith(domain)) {                        if (!uriStringAL.contains(newURI.toString()) && !newURI.toString().isEmpty()) {
  
  uriStringAL.add(newURI.toString());
  
  }
  
  }
  
  }
  
  } catch (SocketTimeoutException e) {
  
  System.out.println("SocketTimeoutException");
  
  } catch (UnknownHostException e) {
  
  System.out.println("UnknownHostException");
  
  } catch (IllegalArgumentException e) {
  
  System.out.println("IllegalArgumentException");
  
  } catch (HttpStatusException e) {
  
  System.out.println("HttpStatusException");
  
  } catch (UnsupportedMimeTypeException e) {
  
  System.out.println("UnsupportedMimeTypeException");
  
  } catch (IOException e) {
  
  System.out.println("IOException");
  
  } catch (URISyntaxException e) {
  
  System.out.println("URISyntaxException");
  
  } catch (NullPointerException e) {
  
  System.out.println("NullPointerException");
  
  }
  
  } while (uriStringAL.size() > index);
  
  }
  
  }

  
  2.Web应用
  
  常见威胁2017年的OWASP Top 10报告(https://owasp.org/www-project-top-ten)中,列举了针对Web应用的十大安全风险,如下所示。有关OWASP的具体内容会在后面的章节中进行详细介绍。
  
  ?A1:Injection。
  
  ?A2:Broken Authentication。
  
  ?A3:Sensitive Data Exposure。
  
  ?A4:XML External Entities(XXE)。
  
  ?A5:Broken Access Control。
  
  ?A6:Security Misconfiguration。
  
  ?A7:Cross-Site Scripting(XSS)。
  
  ?A8:Insecure Deserialization。
  
  ?A9:Using Components with Known Vulnerabilities。
  
  ?A10:Insufficient Logging and Monitoring。
  
  3.网站漏洞扫描
  
  如图1-4所示,在网站扫描过程中,首先要利用爬虫技术对企业的Web应用进行一个全面的了解,相当于对网站应用做了一次全面的资产扫描。其次,再对网站的所有页面进行有针对性的漏洞扫描,这里所说的漏洞包括了Web应用中常见的各种漏洞类型,例如SQL Injection、Cross-Site Scripting(XSS)、XMLExternal Entities(XXE)等。网站应用中是否存在漏洞?漏洞在哪里?漏洞能不能被利用?这些问题都是网站扫描需要回答的,也是网站扫描需要解决的问题。
  什么是网站扫描
  图1-4 网站漏洞扫描过程

最新推荐

右侧广告图1
  • 轻量应用服务器

    轻量应用服务器是面向网站建设、开发测试、小型应用等轻量应用场景的云服务器产品。通过轻量化、贴近应用、账单确定性强、可进化四大产品特点,帮助中小企业及开发者快速构建应用程序和网站,即刻迈出上云第一步。

    ¥68.00/月

    折扣优惠,新人专享,限时秒杀

  • 云安全中心

    通过防勒索、漏洞扫描修复、防病毒、防篡改、合规检查等安全能力,帮助用户实现威胁检测、响应、溯源的自动化安全运营闭环,保护云上主机、本地服务器和容器安全,并满足监管合规要求

    ¥36.00/年

    典名专属折扣

  • Web应用防火墙 WAF

    Web应用防火墙对网站或APP的业务流量进行恶意特征识别及防护,将清洗后的安全流量返回至服务器。避免服务器被恶意攻击及入侵,应用被挂马和篡改,保护核心数据安全,保障业务稳定运转。

    ¥4950.00/年

    典名专属折扣

右侧广告图2