美文网首页
目录扫描器对url的分类及判断

目录扫描器对url的分类及判断

作者: book4yi | 来源:发表于2020-03-08 15:14 被阅读0次

前言


目录扫描是渗透测试中必不可少的一个步骤,有时对站点进行目录扫描会有意想不到的收获。我简单的写了个脚本进行探测,这里主要介绍写脚本的依据。

目标url拼接字典后,通过python自动化脚本,建立A、B、C共3个列表。

  • A类表示可正常访问存在的目录或接口
  • B类表示存在但不可访问的目录或接口
  • C类表示可能存在的目录或接口

对拼接字典后的url-a进行访问获取到HTTP状态码a,同时拼接构造随机字符串,去访问一个不存在的url-b,获取到HTTP状态码b。

  1. 若状态码a为200:
  • 结合页面关键字是否存在'404','not found','error'等关键词,若有则表示url可能为状态码为200的404界面,把url放入C类,否则进行下一步判断
  • 访问url-b,根据状态码b及页面相似度判断:
    a. 若状态码b为200,判断页面相似度是否小于95%,若是则把url放入C类
    b. 若状态码b为404,把url放入A类
  1. 若状态码a为403:
  • 访问url-b,若状态码b在[200,404],把url放入B类
  1. 若状态码a为30X:
  • 设置allow_redirects=True再去访问,获取状态码c
    a. 若状态码c为200,若没有跳转到首页,同上判断
    b. 若状态码c为403,同上判断
    c. 若假设访问/user,重定向到/user/,而访问任意接口/adfgh,不会跳转到/adfgh/,那么此目录大概率是存在的

可建立第4个列表用于记录没有涉及到的情况。

补充


在这我还想提下关于404页面的识别:
我遇到过的一些常见的情况:

  1. 状态码直接为404,这个最好理解
  2. 遇到不存在的页面会自动跳转到首页或者是指定的错误界面
  3. 不跳转显示报错页面

我一般是通过difflib库来比较两个页面的相似度,先构造一个绝对不存在的API去访问,提取出404特征,如果访问的状态码为404则直接忽略,否则跟404特征页面进行相似度比较,若相似度>90%,就判断为404界面。由此可以一定程度上减少误报率

相关文章

网友评论

      本文标题:目录扫描器对url的分类及判断

      本文链接:https://www.haomeiwen.com/subject/frfcdhtx.html