添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 开通星球了 - 607 浏览
  • 登入 - 61,800 浏览
  • 企业微信溯源-证实可用 - 3,345 浏览
  • Havoc+Harriet,绕过EDR方案 - 1,725 浏览
  • 二进制漏洞挖掘与利用&胖(Pwn)选手养成路线 - 1,633 浏览
  • HTTP Request Smuggling(HTTP 请求走私)攻击及案例说明 - 1,422 浏览
  • 云原生安全学习笔记 - 1,420 浏览
  • Web 缓存欺骗:在意想不到的地方发现漏洞 - 1,345 浏览
  • Vulnerability Wiki & CTF 练习平台搭建-2 - 1,294 浏览
  • GPTs Prompts泄露合集 - 1,252 浏览
  • PWN思维导图【转】 - 1,158 浏览
  • 友情链接

    CTF Tool

    背景介绍:

    如果你曾经写过网络爬虫,那么你一定遇到过因生成过多请求而被对方服务器阻止的问题,或者你只是想隐藏真实 IP 地址并自动化运行你的脚本。

    本文将解释如何在 Linux 系统上配置 TOR,以及如何使用 Python 脚本实现 TOR 以隐藏你的真实 IP 并绕过基于 IP 的限制。

    TOR是个啥?

    “Tor是洋葱路由器(The Onion Router)的简称,是一款免费开源的匿名通信软件。” Tor网络是一种安全的加密协议,可以确保网络上数据和通信的私密性。

    Tor 服务/浏览器使用称为洋葱路由的技术,洋葱路由器是一种点对点 (P2P) 覆盖网络,使用户能够匿名浏览互联网,通过网络发送信息的来源和目的地可以利用洋葱路由使用多层加密实现隐藏。

    TOR 网络通常需要使用 TOR 浏览器访问,但如果你想在 Python 脚本中使用它并通过 TOR 网络运行自动化脚本该怎么办?这正是我们今天这篇文章要讲的!

    TOR 安装

    首先Tor的安装取决于你的操作系统,官网( https://www.torproject.org/download/)有详细说明,对于大多数基于 Debian 的操作系统,操作起来基本都非常方便。

    sudo apt-get install tor

    要启动Tor服务,运行:

    sudo service tor start

    如果要检查服务是否有效,只需运行如下命令:

    curl --socks5 localhost:9050 --socks5-hostname localhost:9050 -s https://check.torproject.org/ | cat | grep -m 1 Congratulations | xargs
    

    如果一切正常,你会看到如下内容:

    Congratulations. This browser is configured to use Tor.
    

    使用Python进行配置

    安装 Python 相关请求模块,可用于后续 TOR 网络请求发送:

    sudo pip3 install requests
    sudo pip3 install requests[socks]
    sudo pip3 install requests[security]
    sudo pip3 install cryptography

    使用请求模块:

    import requests
    

    可以使用下方命令在没有 Tor 的情况下检查你的 IP 地址:

    requests.get('https://ident.me').text
    

    输出的结果会是你的真实 IP 地址。

    要在 Python 脚本中使用 TOR 网络,首先需要告诉 Python 使用代理:

    proxies = {
        'http': 'socks5://127.0.0.1:9050',
        'https': 'socks5://127.0.0.1:9050'
    

    现在,你会得到一个新的 IP 地址:

    requests.get('https://ident.me', proxies=proxies).text

    获取新身份

    我们需要在每次发出新请求时或以固定的时间间隔获取新的 IP 地址,因此我们需要一个名为“Stem”的 Python 模块。

    Stem 是 Tor 的 Python 控制器库,有了它我们就可以使用 Tor 的控制协议来编写针对 Tor 进程的脚本。

    为了更加匿名,我们可以使用“Fake UserAgent”模块为每个请求生成一个新的用户代理,这两个模块均可使用 pip 安装:

    sudo pip3 install stem
    sudo pip3 install fake_useragent

    Tor 控制器还必须配置为请求身份更新。

    sudo nano /etc/tor/torrc

    将以下内容写入 /etc/tor/torrc 文件中:

    ControlPort 9051
    CookieAuthentication 1

    然后重新启动 Tor 以使这些修改生效:

    sudo service tor restart
    

    首先,导入所需模块:

    import time
    import requests
    from fake_useragent import UserAgent
    from stem import Signal
    from stem.control import Controller

    然后定义代理:

    proxies = { 'http': 'socks5://127.0.0.1:9050', 'https': 'socks5://127.0.0.1:9050'

    现在将为 Stem Controller 定义一个 Handler,使用该处理程序,将验证我们的请求并生成信号以获取新 IP 地址:

    with Controller.from_port(port = 9051) as c:
            c.authenticate()
            c.signal(Signal.NEWNYM)

    以下是完整代码:

    import time
    import requests
    from fake_useragent import UserAgent
    from stem import Signal
    from stem.control import Controller
    proxies = {
        'http': 'socks5://127.0.0.1:9050',
        'https': 'socks5://127.0.0.1:9050'
    print("Changing IP Address in every 10 seconds....\n\n")
    while True:
        headers = { 'User-Agent': UserAgent().random }
        time.sleep(10)
        with Controller.from_port(port = 9051) as c:
            c.authenticate()
            c.signal(Signal.NEWNYM)
            print(f"Your IP is : {requests.get('https://ident.me', proxies=proxies, headers=headers).text}  ||  User Agent is : {headers['User-Agent']}")

    代码将每10秒生成一个新IP地址,并在每个请求中生成一个新的用户代理。

    有很多场景可以使用该工具,例如:

  • 在不被阻止的情况下爬取普通 Web 页面
  • 制作暗网爬虫
  • 掩藏 IP 地址
  • 更多功能待你发现…..
  • So,你学废了么?