FOFA shodan iconhash 算法的java与python结果不同的问题解决

iconhash作为FOFA和shodan的icon搜索的目标值,可以搜索出所有一样icon的网站的域名的关键值,但是发现python的结果和java不同,经过调试发现原来是base64转码的问题,java的base64转码后出现\r\n,但是python只有\n,去掉就可以了,代码如下:

python:

_icon = mmh3.hash(codecs.lookup('base64').encode(requests.get('http://www.baidu.com/favicon.ico').content)[0])

值为:-1507567067

java:

Hashing.murmur3_32().hashString(base64Str.replaceAll("\r","")+"\n",StandardCharsets.UTF_8).asInt()

值为:-1507567067

完成。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
收集 FOFA 搜索结果的 Python 脚本可以使用 FOFA 的开放 API 进行实现。以下是一个简单示例: 首先,你需要在 FOFA 网站上注册并获取 API 密钥。然后,使用下面的 Python 代码作为参考: ```python import requests import json def collect_fofa_results(api_key, query): headers = { 'User-Agent': 'Mozilla/5.0', 'X-Auth-Token': api_key } params = { 'qbase64': query, 'full': 'true', 'fields': 'ip,title' } url = 'https://fofa.so/api/v1/search/all' response = requests.get(url, headers=headers, params=params) if response.status_code == 200: results = json.loads(response.text) return results else: print('Error occurred. HTTP Status Code:', response.status_code) return None api_key = 'your_api_key' query = 'your_query_base64_encoded' results = collect_fofa_results(api_key, query) if results: for result in results['results']: ip = result[0] title = result[1] print('IP:', ip, 'Title:', title) ``` 这段代码中,`collect_fofa_results` 函数发送请求到 FOFA 的 API,其中包含你的 API 密钥和经过 Base64 编码的查询语句。在这个示例中,只收集了结果中的 IP 和标题两个字段。 你需要将 `your_api_key` 改为你在 FOFA 上获取到的 API 密钥,并将 `your_query_base64_encoded` 改为经过 Base64 编码的查询语句。当脚本运行时,它会打印出结果中的 IP 和标题。 这只是一个简单示例,你可以根据自己的需求修改代码并添加更多的字段来收集 FOFA 搜索结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值