Fork me on GitHub

《白帽子讲Web扫描》小结

  • #####web扫描器的原理
    通过分析HTTP(S)的请求和响应来发现安全问题和架构缺陷
  • #####web爬虫
    一种按照一定的规则自动抓取万维网资源的程序或者脚本
  • #####URL完整格式解析
    协议://主机名[:端口]/路径/[;参数][?查询参数]#信息片段
    eg:http://www.anquanbao.com:80/index.php?id=1#target
    协议:http
    主机名:www.anquanbao.com
    端口:80
    路径:index.php
    查询参数:id=1
    信息片段:target
  • #####网页的超链接
    1、绝对URL的超链接:链接网络上的一个站点、网页或其他资源
    2、相对URL的超链接:链接同一网站的资源
    3、书签:链接同一网页的资源
    eg:
    绝对URL超链接:

    相对URL超链接:

    //以当前页面地址为基点形成超链接
    index.html表示同一网站的新的页面

    同一页面的超链接,用户点击时会跳到同一页面的top位置
  • #####HTTP协议
    1、HTTP请求
    请求行、请求报头、请求正文
    2、HTTP响应
    响应行、响应报头、响应正文
  • #####HTTP认证
    1、Basic认证:按照明文信息进行传递,易劫持
    2、Digest认证(摘要式):需要通过两次交互来完成
    //都容易被劫持和监听
  • #####DNS本地缓存
    1、将域名和ip的关系存储下来;分为浏览器缓存、系统缓存(浏览器缓存优先)
    2、火狐浏览器缓存文件查看:about:cache
    谷歌浏览器缓存文件查看:chrome://net-internals/#dns
    //分别在对应的浏览器中输入
    3、系统缓存查看:命令行窗口中输入ipconfig /displaydns
  • #####爬虫策略
    1、广度优先策略
    2、深度优先策略
    3、最佳优先策略
  • #####页面跳转
    1、客户端跳转
    301跳转:永久性转移
    302跳转:临时性跳转
    2、服务端跳转
    服务端在收到客户端的HTTP请求后,由于请求到的页面和实际处理请求的页面不同,服务端会在内部进行页面跳转。
    //服务端跳转时,客户端只发送一次请求,浏览器的地址栏不会显示目标地址的URL;客户端跳转时,由于是两次请求,这时地址栏中会显示目标资源的URL。(客户端向服务端发出第一次请求并发生一次跳转,得到服务端的响应后根据响应提供的地址发出第二次请求并进行第二次跳转,最终地址栏的地址为第二次请求的地址)
    参考链接:小结:“服务器端跳转”和“客户端跳转”的区别
  • #####URL
    1、URL间的关系
    URL重复:完全一样
    URL相似:除了参数值不一样外,其余都一样
    URL包含:参数名包含
    2、URL去重
  • 哈希表去重
    建立一个HASH表,在HASH表中查找新的URL是否存在,不存在就放进去,一直遍历完所有的URL
  • 布隆过滤器
  • #####页面相似算法
    1、编辑距离:根据两个字符串由一个转成另一个所需要的最少编辑次数来比较两个页面间的相似度;
    //一般来说,编辑距离越小,两个串间的相似度越大
    2、Simhash:为每一个web文档通过hash的方式生成一个64位的字节指纹(特征字),根据特征字的海明距离是不是<n(n一般为3)来判断两个文档的相似度。
    //海明距离:两个合法代码对应位上编码的不同位数。
    eg:10101和00110从第一位开始有5位不同,则海明距离为3.
  • #####链接
    1、静态链接:扩展名主要为:rar、zip、ttf、png、gif
    2、动态链接:扩展名主要为:html、shtml、do、asp、aspx、php、js