fofa 搜索结果提取技术分析
脚本语言:python2.7
白嫖与付费
付费肯定有更好的服务,但是就是喜欢薅羊毛的快乐。能付费尽量付费吧,如果你付费了这个脚本使用起来更安逸。
非api原因
根据网站vip功能介绍,可以看到“注册用户”和“普通会员”使用api都是亏本买卖,如果想用api就开svip才最安逸
Fofa与BeautifulSoup
Fofa的搜索语法
返回头 header=”200″
国家 country=”CN”
页面内容 body=”phpweb”
网页头 title=”公司”
端口 port=”443″
网站年份 after=”2020-01-01″
BeautifulSoup库
注:一般搭建好网站不会轻易更改网页标签类型,所以使用标签提取比正则匹配能让脚本“活得更久”
定位网页标签
soup.find(name="input", attrs={"id": "total_entries"})
soup.find_all(name="div", attrs={"class": "list_mod"})
获取标签值
yourdiv.attrs['value']
获取ul内的li值
执行搜索操作
打开fofa官网https://fofa.so/,搜索热门关键字,可以看到url请求为
https://fofa.so/result?qbase64=xxx
其中qbase64的值就是搜索字符串“base64编码+url编码”的结果,这里需要注意中文问题,需要将中文先gbk解码,再用base64库编码(我本机是gbk编码,所以输入的中文也是gbk编码,如果你的机器是utf-8编码就改为utf-8,没测)
code = key.decode()code = urllib.quote(base64.b64encode(code))
这里遇到个问题一直没整明白,上面那种方式可以成功,但是下面这种使用方式却失败了,如果有人知道原因请留言或私信给我。
code = urllib.quote(base64.b64encode(key.decode('gbk')))
代码
获取页面搜索结果
使用浏览器自带调试功能查看html框架,可以看到我们搜索结果都在“<div>”标签下,每一个“<divclass=”list_mod”>”标签是一条信息
一个list_mod标签包含一个目标的全部信息
代码,其中divs就是全部目标列表
定位单条目标信息
选取单个目标的标签点开分析,可以看到标签有list_mod_t和list_mod_c两个子标签
而元素a就是可以直接跳转的链接,从这里提取到目标的url或者IP
而目标下面的介绍其实是一个ul列表,这部分信息也比较重要,所以我也提取了
代码
其中列表信息没做详细分类提取,也没有把他写入到文件,内存里长这样
关于URL存活状态
在单个目标的右边有他的响应码,我是根据这个来确定的存活,当然你也可以自己请求一下提取的URL来判断存活,如果只需要200的网站就在查询时使用header=”200″;代码中获取的是右侧整个字符串,大家根据需要自行修改代码就行
代码
翻页问题
我们知道目标总数除以10后加1就是页数,所以要提取目标总数,依旧是根据网页标签定位提取数据
代码如下
知道总页数怎么翻页呢?
通过api规则知道请求中的page参数决定当前页面(或者看网页【下一页】的链接),测试中发现有请求频率限制,做下防封延时就行
代码如下
网站cookie
Fofa现在登陆需要进行验证了,无法直接用户名密码登陆,所以我使用的cookie验证身份。
自定义数据输出
在按页获取函数中修改数据处理方式,解除注册会员限制
脚本中是将链接追加到指定txt文件中,其它信息只是获取了,并没有输出
脚本使用
使用命令参数输入关键字和cookie,会输出总数,提示每页有多少条存活,其他信息输出自行修改脚本
注意titile、app等使用方法,如果网页搜索栏是这样的
app=”BEA-WebLogic-Server”
那么命令行这样输入
“app=\”BEA-WebLogic-Server\”"
输出总数和网页搜索总数一致(没有带国家参数)
Hreffile.txt内容
fofa 搜索结果提取技术分析相关推荐
- 基于公开网站挖掘敏感信息的研究与分析- Fofa 搜索
基于公开公开网站挖掘敏感信息的研究与分析- Fofa 搜索 一.引言 1.1项目概述 基于公开网站的敏感信息挖掘研究与分析:针对目前网络安全整体的趋势我们从google等搜索引擎.Github等代码库 ...
- 抖音SEO优化源码,搜索排名系统,技术理论分析,抖音矩阵,抖音seo系统。
前言:抖音SEO优化源码,搜索排名系统,技术理论分析,抖音矩阵,抖音seo系统.抖音seo矩阵系统底层框架上支持了ai视频混剪,视频产出,视频AI制作,多账号多平台矩阵,视频一键内部分发,站内实现搜索 ...
- Firmware固件提取及分析技术
概念 固件(firmware)是一种写入硬件设备的软件,作用是对应用和各项系统功能实时控制.固件中包含底层代码,这些代码能实现软件对硬件的操作.运行固件的设备称为嵌入式系统,嵌入式系统的硬件资源在存储 ...
- Google VP8 Code 首次深入技术分析 1
The first in-depth technical analysis of VP8 首次深入技术分析 Back in my original post about Internet video, ...
- 对象检测目标小用什么模型好_小目标检测技术分析
小目标检测技术分析 小目标检测及跟踪系统分为四个模块: · 硬件模块 该模块基于标准PCI总线,并配以超大规模可编程芯片(DSP.FPGA),具有极强的运算.处理能力. · DSP 程序模块 其功能主 ...
- ARP病毒攻击技术分析与防御(补充知识)
ARP病毒攻击技术分析与防御 -- ARP病毒攻击技术分析与防御 一.ARP Spoofing攻击原理分析 在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的.ARP协议 ...
- 博通团队文本标签提取技术演进
文本标签提取技术实践与探索方案 | 相关论文入选顶会 | 导语 搜索.广告.推荐等场景都需要对内容的深入理解,而标签提取是内容理解中最常见的任务,本文介绍了博通内容理解中文本标签提取的技术实践和探索. ...
- Turing渲染着色器网格技术分析
Turing渲染着色器网格技术分析 图灵体系结构通过使用 网格着色器 引入了一种新的可编程几何着色管道.新的着色器将计算编程模型引入到图形管道中,因为协同使用线程在芯片上直接生成紧凑网格( meshl ...
- YOLOV4各个创新功能模块技术分析(一)
YOLOV4各个创新功能模块技术分析(一) 简 介 yolov4论文:YOLOv4: Optimal Speed and Accuracy of Object Detection arxiv:http ...
最新文章
- 粗谈Android中的对齐
- SpringBoot巧用 @Async 提升API接口并发能力!
- sql查询两张表的并集union和union all
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
- python webdriver api-操作日期元素的方法
- 实现一个基于 IConfiguration 的低配版 FeatureFlag
- 小甲鱼 OllyDbg 教程系列 (一) :二进制破解科普系列之 ReverseMe
- 编译和链接的区别、makefile怎么写
- 【java】深入理解Java JVM虚拟机中init和clinit的区别
- PHP header函数的用法辨析,有点意思
- QString转Char*字符串
- Kibana插件sentinl实现邮件报警
- 自定义view:百分比圆弧动画显示
- 金山词霸没有响应, 金山词霸与卡巴冲突问题解决方法?
- android 歌词同步 换行,AS3歌词同步详解
- ⭐️UI自动化控制微信发送或转发图片消息✨
- CCF NOIP2018复赛提高组一等奖获奖名单
- 黄瓜客户端java_建造者模式
- 云智巡在连锁药店的巡检作用
- QCC512X--QCC514X--QCC302X--QCC304X烧录工具