• hackhttp
    • 参数
    • kwargs 参数可选值
    • 返回值

    hackhttp


    hackhttp 是四叶草安全旗下 BugscanTeam 打造的一款 Python 语言的 HTTP 第三方库。是分布式漏洞扫描框架 BugScan 中核心库之一。

    hackhttp 现已开源,仓库地址 https://github.com/BugScanTeam/hackhttp

    BugScan SDK 已经集成 hackhttp, 导入 SDK 之后可直接使用 hackhttp.http() 进行发包。

    注意:原 SDK 中 MiniCurl 已经不再提供更新,为保证兼容性,新版 SDK 中仍可以使用 MiniCurl。如果有项目使用了 MiniCurl,官方建议作者尽快将项目迁移至 hackhttp。

    1. hackhttp.http(url, post=None, **kwargs) -> (code, head, html, redirtct_url, log)

    参数

    • url

      要访问的目标地址,类型 String, 必选

      使用范例:

      1. hackhttp.http(url="http://bugscan.net")
    • post

      要发送的 POST 数据

      使用范例:

      1. hackhttp.http(url="xxxxx", post="user=admin&pawd=admin")

    kwargs 参数可选值

    • raw

      发送 http 包,可从 burpsuite 上复制

      使用范例:

      1. raw_data = '''GET /index.php HTTP/1.1
      2. Host: www.baidu.com
      3. Connection: keep-alive
      4. Cache-Control: max-age=0
      5. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
      6. Upgrade-Insecure-Requests: 1
      7. User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
      8. Accept-Encoding: gzip, deflate, sdch
      9. Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
      10. '''
      11. hackhttp.http(url="https://www.baidu.com", raw=raw_data)
    • proxy

      代理服务器,参数类型为 tuple,支持 HTTP 协议

      使用范例:

      1. hackhttp.http(url="xxxxx", proxy=('127.0.0.1', 8080))
    • method

      HTTP 请求方式,根据 RFC2616 标准(现行的 HTTP/1.1) 可选的请求方式有:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT,默认为 GET,如果设置了 post 值,会自动修改 method 值为 POST,如果指定了 method 则会修改为指定的值。

    • cookcookie

      自动处理 Cookie 值,参数类型为 bool

      使用样例:

      1. hackhttp.http(url="xxxx", cookcookie=True)
    • header

      设置 HTTP 请求头字段,类型为 String

      使用样例:

      1. hackhttp.http(url="xxxx", header='Referer:https://bugscan.net\r\nUser-Agent: hackhttp user-agent')
    • headers

      设置 HTTP 请求头字段,类型为 dict

      使用样例:

      1. hackhttp.http(url="xxxx", headers={'Referer': 'https://bugscan.net', 'User-Agent': 'hackhttp user-agent'})

      注意: 如果同时设置了 header 和 headers ,那么只会以 header 为准。

      设置 cookie 值,User-Agent 等值可以通过设置 header 来实现,或者在创建 hackhttp 指定

    返回值

    返回值类型为 tuple, 长度为 5

    1. code, head, html, redirect_url, log = hackhttp.http(url="xxxx")
    • code

      HTTP 状态码,类型为 int

    • head

      HTTP 响应头,类型为 String

    • html

      HTTP 响应体,类型为 String

    • redirect_url

      遇到 HTTP 302 后的跳转地址,如果无跳转则为请求的地址

    • log

      HTTP 日志信息,类型为 dict

      • url

        本次请求的第一个 URL 地址

      • request

        HTTP 请求报文

      • response

        HTTP 响应报文