”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 使用 SubDomainRadar.io 和 Python 轻松发现隐藏子域

使用 SubDomainRadar.io 和 Python 轻松发现隐藏子域

发布于2024-11-06
浏览:756

Discover Hidden Subdomains Effortlessly with SubDomainRadar.io and Python

作为网络安全专业人员漏洞赏金猎人渗透测试人员,发现隐藏的子域对于识别至关重要域中的潜在漏洞。子域通常托管可能容易受到攻击的被遗忘的服务或测试环境。

在这篇文章中,我将向您介绍 SubDomainRadar.io 及其 Python API 包装器自动化子域枚举的终极工具安全工作流程中的反向搜索

为什么选择 SubDomainRadar.io?

SubDomainRadar.io 脱颖而出,因为它使用超过 40 个私有数据源 来提供全面的子域发现体验。无论您需要运行快速、深度还是反向搜索,此工具都将帮助您找到比以往更多的子域。

另外,借助SubDomainRadar Python库,您可以轻松地将这些强大的功能集成到您自己的项目和脚本中。

Python 包装器的特点

使用 SubDomainRadar Python API 包装器,您可以:

  • 根据关键字对子域名执行反向搜索
  • 枚举具有不同搜索深度的域(快速、中度、深度)
  • 检索排除的域和 TLD

入门

要开始使用 SubDomainRadar Python 包装器,您需要通过 pip 安装它:

pip install subdomainradar

安装后,您只需几行代码就可以开始发现子域!

基本使用示例

以下是如何使用 SubDomainRadar API 对域列表执行子域枚举:

from subdomainradar import SubdomainRadarAPI

# Initialize the API client
api = SubdomainRadarAPI(base_url="https://api.subdomainradar.io", api_key="YOUR_API_KEY")

# Enumerate subdomains for a list of domains
domains = ["tesla.com", "google.com"]
results = api.enumerate_domains_with_results(domains=domains, group="Fast")

# Print the results
for domain, data in results.items():
    print(f"Domain: {domain}")
    print(f"Task ID: {data['task_id']}")
    print(f"Status: {data['status']}")
    print(f"Total Subdomains Found: {data['total_subdomains']}\n")

    print("Subdomains:")
    for subdomain_info in data.get('subdomains', []):
        print(f"  - Subdomain: {subdomain_info['subdomain']}")
        print(f"    IP: {subdomain_info.get('ip', '')}")
        print(f"    Country: {subdomain_info.get('country', 'No Country Info')}")
        print(f"    Reverse DNS: {subdomain_info.get('reverse_dns', [])}\n")

    print(f"WHOIS Information:")
    whois_info = data.get('whois', {})
    print(f"  Registrar: {whois_info.get('registrar', '')}")
    print(f"  Creation Date: {whois_info.get('creation_date', '')}")
    print(f"  Expiration Date: {whois_info.get('expiration_date', '')}")
    print(f"  Nameservers: {whois_info.get('nameservers', '')}\n")

在此示例中,我们正在运行 Fast 枚举搜索,可快速返回域“tesla.com”和“google.com”的子域。您可以切换到深度中度搜索,具体取决于您需要的彻底程度。

反向子域搜索

SubDomainRadar.io 最酷的功能之一是能够运行反向搜索。如果您正在寻找与特定关键字或域的一部分相关的子域,此功能会派上用场。

以下是如何使用 Python 包装器运行反向搜索:

# Perform a reverse search
results = api.reverse_search(subdomain_part="api", domain_part="car", tld_part="com")

for subdomain_info in results['subdomains']:
    subdomain = subdomain_info.get('subdomain', '')
    domain = subdomain_info.get('domain', '')
    tld = subdomain_info.get('tld', '')
    timestamp = subdomain_info.get('timestamp', '')

    if subdomain:
        complete_subdomain = f"{subdomain}.{domain}.{tld}"
    else:
        complete_subdomain = f"{domain}.{tld}"

    print(f"Complete Subdomain: {complete_subdomain}")
    print(f"Subdomain: {subdomain}")
    print(f"Domain: {domain}")
    print(f"TLD: {tld}")
    print(f"Timestamp: {timestamp}\n")

这使您可以根据关键字或特定模式查找子域,从而更轻松地找到目标资产。

今天就尝试一下吧!

如果您正在寻找一个有效、易于使用的工具来发现网站的所有子域,请尝试SubDomainRadar.ioSubDomainRadar Python 包装器 可以更轻松地将子域发现集成到您的安全工作流程中。

准备好开始了吗?今天通过 pip 安装包装器并解锁 SubDomainRadar.io 的全部功能!

版本声明 本文转载于:https://dev.to/alexandre_vandamme_241212/discover-hidden-subdomains-effortlessly-with-subdomainradario-and-python-90d?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 为什么PYTZ最初显示出意外的时区偏移?
    为什么PYTZ最初显示出意外的时区偏移?
    与pytz 最初从pytz获得特定的偏移。例如,亚洲/hong_kong最初显示一个七个小时37分钟的偏移: 差异源利用本地化将时区分配给日期,使用了适当的时区名称和偏移量。但是,直接使用DateTime构造器分配时区不允许进行正确的调整。 example pytz.timezone(...
    编程 发布于2025-06-05
  • 左连接为何在右表WHERE子句过滤时像内连接?
    左连接为何在右表WHERE子句过滤时像内连接?
    左JOIN CONUNDRUM:WITCHING小时在数据库Wizard的领域中变成内在的加入很有趣,当将c.foobar条件放置在上面的Where子句中时,据说左联接似乎会转换为内部连接。仅当满足A.Foo和C.Foobar标准时,才会返回结果。为什么要变形?关键在于其中的子句。当左联接的右侧值...
    编程 发布于2025-06-05
  • 为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    查询模式实现缺失:解决“无法找到”错误在Silverlight应用程序中,尝试使用LINQ建立LINQ连接以错误而实现的数据库”,无法找到查询模式的实现。”当省略LINQ名称空间或查询类型缺少IEnumerable 实现时,通常会发生此错误。 解决问题来验证该类型的质量是至关重要的。在此特定实例中...
    编程 发布于2025-06-05
  • 在JavaScript中如何并发运行异步操作并正确处理错误?
    在JavaScript中如何并发运行异步操作并正确处理错误?
    同意操作execution 在执行asynchronous操作时,相关的代码段落会遇到一个问题,当执行asynchronous操作:此实现在启动下一个操作之前依次等待每个操作的完成。要启用并发执行,需要进行修改的方法。 第一个解决方案试图通过获得每个操作的承诺来解决此问题,然后单独等待它们: co...
    编程 发布于2025-06-05
  • `console.log`显示修改后对象值异常的原因
    `console.log`显示修改后对象值异常的原因
    foo = [{id:1},{id:2},{id:3},{id:4},{id:id:5},],]; console.log('foo1',foo,foo.length); foo.splice(2,1); console.log('foo2', foo, foo....
    编程 发布于2025-06-05
  • 在GO中构造SQL查询时,如何安全地加入文本和值?
    在GO中构造SQL查询时,如何安全地加入文本和值?
    在go中构造文本sql查询时,在go sql queries 中,在使用conting and contement和contement consem per时,尤其是在使用integer per当per当per时,per per per当per. [&​​&&&&&&&&&&&&&&&默元组方法在...
    编程 发布于2025-06-05
  • 在C#中如何高效重复字符串字符用于缩进?
    在C#中如何高效重复字符串字符用于缩进?
    在基于项目的深度下固定字符串时,重复一个字符串以进行凹痕,很方便有效地有一种有效的方法来返回字符串重复指定的次数的字符串。使用指定的次数。 constructor 这将返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.Wr...
    编程 发布于2025-06-05
  • Python中何时用"try"而非"if"检测变量值?
    Python中何时用"try"而非"if"检测变量值?
    使用“ try“ vs.” if”来测试python 在python中的变量值,在某些情况下,您可能需要在处理之前检查变量是否具有值。在使用“如果”或“ try”构建体之间决定。“ if” constructs result = function() 如果结果: 对于结果: ...
    编程 发布于2025-06-05
  • 如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在“ dd/mm/yyyy hh:mm:mm:ss.ss”格式“ gormat 解决方案:的,请访问量很大,并应为procectiquiestate的,并在整个代码上正确格式不多: java.text.simpledateformat; 导入java.util.calendar; 导入java...
    编程 发布于2025-06-05
  • Java的Map.Entry和SimpleEntry如何简化键值对管理?
    Java的Map.Entry和SimpleEntry如何简化键值对管理?
    A Comprehensive Collection for Value Pairs: Introducing Java's Map.Entry and SimpleEntryIn Java, when defining a collection where each element com...
    编程 发布于2025-06-05
  • 如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    appEngine静态文件mime type override ,静态文件处理程序有时可以覆盖正确的mime类型,在错误消息中导致错误消息:“无法猜测mimeType for for file for file for [File]。 application/application/octet...
    编程 发布于2025-06-05
  • 表单刷新后如何防止重复提交?
    表单刷新后如何防止重复提交?
    在Web开发中预防重复提交 在表格提交后刷新页面时,遇到重复提交的问题是常见的。要解决这个问题,请考虑以下方法: 想象一下具有这样的代码段,看起来像这样的代码段:)){ //数据库操作... 回声“操作完成”; 死(); } ?> ...
    编程 发布于2025-06-05
  • Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    在ASP.NET async void void async void void void void void的设计无需返回asynchroncon而无需返回任务对象。他们在执行过程中增加未偿还操作的计数,并在完成后减少。在某些情况下,这种行为可能是有益的,例如未期望或明确预期操作结果的火灾和...
    编程 发布于2025-06-05
  • Go语言垃圾回收如何处理切片内存?
    Go语言垃圾回收如何处理切片内存?
    在Go Slices中的垃圾收集:详细的分析在GO中,Slice是一个动态数组,引用了基础阵列。使用切片时,了解垃圾收集行为至关重要,以避免潜在的内存泄漏。考虑使用slice使用slice的以下实现:字符串{ R:=(*Q)[0] *q =(*q)[1:len(*q)] 返回...
    编程 发布于2025-06-05
  • 人脸检测失败原因及解决方案:Error -215
    人脸检测失败原因及解决方案:Error -215
    错误处理:解决“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“检测”中的错误:在功能检测中。”当Face Cascade分类器(即面部检测至关重要的组件)未正确加载时,通常会出现此错误。要解决此问题,必须...
    编程 发布于2025-06-05

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3