hackhttp
hackhttp 是四叶草安全旗下 BugscanTeam 打造的一款 Python 语言的 HTTP 第三方库。是分布式漏洞扫描框架 BugScan 中核心库之一。
hackhttp 现已开源,仓库地址 https://github.com/BugScanTeam/hackhttp
BugScan SDK 已经集成 hackhttp, 导入 SDK 之后可直接使用
hackhttp.http()
进行发包。
注意:原 SDK 中 MiniCurl 已经不再提供更新,为保证兼容性,新版 SDK 中仍可以使用 MiniCurl。如果有项目使用了 MiniCurl,官方建议作者尽快将项目迁移至 hackhttp。
hackhttp.http(url, post=None, **kwargs) -> (code, head, html, redirtct_url, log)
参数
url
要访问的目标地址,类型 String, 必选
使用范例:
hackhttp.http(url="http://bugscan.net")
post
要发送的 POST 数据
使用范例:
hackhttp.http(url="xxxxx", post="user=admin&pawd=admin")
kwargs 参数可选值
raw
发送 http 包,可从 burpsuite 上复制
使用范例:
raw_data = '''GET /index.php HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
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
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
'''
hackhttp.http(url="https://www.baidu.com", raw=raw_data)
proxy
代理服务器,参数类型为 tuple,支持 HTTP 协议
使用范例:
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
使用样例:
hackhttp.http(url="xxxx", cookcookie=True)
header
设置 HTTP 请求头字段,类型为 String
使用样例:
hackhttp.http(url="xxxx", header='Referer//bugscan.net\r\nUser-Agent: hackhttp user-agent')
headers
设置 HTTP 请求头字段,类型为 dict
使用样例:
hackhttp.http(url="xxxx", headers={'Referer': 'https://bugscan.net', 'User-Agent': 'hackhttp user-agent'})
注意: 如果同时设置了 header 和 headers ,那么只会以 header 为准。
设置 cookie 值,User-Agent 等值可以通过设置 header 来实现,或者在创建 hackhttp 指定
返回值
返回值类型为 tuple, 长度为 5
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 响应报文