SOC
一、效果图
1.目标预览
2.报告预览
3.自动化报告模板
二、文档
-
- UI界面
- 安装依赖
-
-
RPC
-
双向base64编码可以避免绝大部分xml报错
-
数据库真假用str类型的False和True,避免RPC错误,弃用bool类型, 减少歧义和转换过程
-
手里剑
- findindb -- 快速查找数据库中匹配字符所在的表和字段
- main_worker_clear_alltask -- 清理掉消息队列的历史任务
-
多线程
-
任务控制
-
锁机制
-
数据有效性提前检查
-
-
celery变更了,需要重启RPC,因为RPC实例化了celery,因此不重启RPC还是旧的
-
celery模式说明
-
celery-prefork排错
-
执行 A1_common\B0_self\browserequest\undetected_chromedriver\dprocess.py下的 import multiprocessing
-
thread模式报错: signal only works in main thread of the main interpreter
prefork模式报错: AssertionError: daemonic processes are not allowed to have children -
解决方案:
#import multiprocessing import billiard as multiprocessing
-
-
-
filter双重检查,在task处也做: 除了在工作函数,在任务函数也做数据有效性检查,这样第一可以降低负载(避免API和RPC和celery负载),第二可以快速确认需要执行的目标,而不是浪费时间等待后端反馈,提升效率
-
-
投料后需要定时任务多次执行,才会逐步更新
-
Connection to broker lost导致的 Task反复从消息队列获取并重复执行
原因是Task结束要打回结果到 消息队列这个过程稳定失败
解决方案: 1. 再配置中加上broker心跳,重试的配置,放宽 2. 检查网络,后面发现“排错-DNS和网络连接失败”导致的数据能进不能出,导致消息返回失败
-
-
模块加锁
webflow 已加
-
主动扫描模块 -- 补充下
-
测试发现宿主机配置的/etc/hosts是可以控制容器内的域名解析
-
-
数据结构
-
漏洞处理
-
filter -- 标准化特征
-
toflow -- 部分漏洞转流量,在应用中关注
-
repeatcheck -- 去重复
-
-
流量审计
-
webpack
-
normaljs 自己整理的正则
- 整理如下 (参考Javascript-Files.ppt) -- 总结而言这几个项目的正则没啥用,还是要靠自己的
- JSA endpoints_extraction, js_files_extraction 正则已分析,无啥用
- LinkFinder 正则已分析,无啥用
- subjs 正则已分析,无啥用
-
-
crawler和scanner的数据有效检查还没做,等待功能测试通过记得补上
-
-
排错
-
IAST
-
调试
- 关键服务-- 没有启动没法调的哈
- worker 完成
xray scanner 完成
tasker node / main
api 完成
rpc 完成
-
节点代码发布与部署
-
测试
- 爬虫测试用例
-
使用手册
-
分布式节点
- 节点用RPC,主节点内全部直接调用,节省RPC开销
- 本地节点全模块使用,外部节点使用backend_outsidescannode发布分支的代码,拷贝上去部署,上面的代码要求是功能最小化
- 功能定位:
- 只做产生漏洞的动作
- 主节点生成任务,推送到分布节点,分布节点吐数据即可
- 其他均不做, 保证代码机密性
- 部署步骤
- 安装模块推送,安装完成,清理干净
- 部署功能模块
- 开启服务
-
FAQ