• XSStrike源码阅读(1)——目录结构与大体架构(原文:https://blog.csdn.net/he_and/article/details/84593067)


     

    目录结构

    • core(目录)
    文件名主要功能
    arjun.py 发现隐藏的参数
    broswerEngine.py selenium浏览器引擎,根据弹窗判断xss是否发生
    checker.py 检查过滤器
    colors.py 定义相关颜色变量,这样在输出不同类型信息时就可以有不同的颜色
    config.py 一些重要配置,默认配置,例如:payloads,fuzzs等
    dom.py 搜索dom xss相关特征
    encoders.py 编码相关函数
    filterChecker.py 检查过滤器
    fuzzer.py fuzz测试的核心代码
    generator.py payload生成引擎
    htmlParser.py 通过解析html,找出我们的输入输出在了哪种环境下
    jsContexter.py  
    photon.py 爬取页面中的表单与链接
    prompt.py 添加headers时会弹出一个编辑器,默认为nano
    requester.py 发送http请求的函数
    updater.py 更新时会调用的函数
    utils.py 里面是一些使用的小函数
    wafDetector.py 探测waf
    zetanize.py 爬取页面中的表单
    • db(目录)
    文件名主要功能
    wafSignatures.json waf特征库,存储着各个waf的特征,可以根据这些特征去判断waf
    • modes(目录)
    文件名主要功能
    bruteforcer.py 暴力测试每个参数
    crawl.py 爬行页面内的所有链接
    scan.py 扫描功能
    singleFuzz.py fuzz测试
    • xsstrike.py(主文件)
      主文件做的事其实也很简单,就是处理命令行参数,然后根据用户输入的命令行参数(开关)来调用相关函数

    扫描器架构

    下图是我整理的一个扫描器大概的工作图谱,比较粗略,后续文章将会就一些重点函数或文件进行细致解读
    架构

  • 相关阅读:
    三元表达式、递归、匿名函数
    迭代器、生成器、面向对象
    LeetCode35-搜索插入位置(二分查找)
    自动化测试框架搭建3-TestNG
    LeetCode28-实现strStr()(水题)
    前端页面与Nodejs使用websocket通信
    LeetCode14-最长公共前缀(水题)
    LeetCode13-罗马数字转整数(水题)
    AngularJS学习3-服务(service)/http服务/跨域
    九度OJ 1001:A+B for Matrices
  • 原文地址:https://www.cnblogs.com/Gouwa/p/14366558.html
Copyright © 2020-2023  润新知