欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

BadTouch:一个可编写脚本的网络身份验证破解程序

来源:本站整理 作者:佚名 时间:2018-04-25 TAG: 我要投稿

badtouch是一个可编写脚本的网络身份验证破解程序。虽然如今市面上关于常见服务爆破的程序已经接近于饱和的状态,但在实际Web应用凭据测试时,你仍可能最终会自己手动来编写自己的Python脚本。
badtouch的范围是定制服务破解。这是通过编写被加载到lua运行的脚本来完成的。这些脚本代表单个服务,并提供返回true或false的verify(user, password)功能。badtouch运行当中会为我们提供并发性,进度指示和报告信息。
base64_decode
解码base64字符串。
base64_decode("ww==")
base64_encode
用base64编码一个二进制数组。
base64_encode("\x00\xff")
execve
执行一个外部程序。返回退出代码。
execve("myprog", {"arg1", "arg2", "--arg", "3"})
hex
十六进制编码一个字节列表。
hex("\x6F\x68\x61\x69\x0A\x00")
hmac_md5
用md5计算hmac。返回一个二进制数组。
hmac_md5("secret", "my authenticated message")
hmac_sha1
用sha1计算hmac。返回一个二进制数组。
hmac_sha1("secret", "my authenticated message")
hmac_sha2_256
用sha2_256计算hmac。返回一个二进制数组。
hmac_sha2_256("secret", "my authenticated message")
hmac_sha2_512
用sha2_512计算hmac。返回一个二进制数组。
hmac_sha2_512("secret", "my authenticated message")
hmac_sha3_256
用sha3_256计算hmac。 返回一个二进制数组。
hmac_sha3_256("secret", "my authenticated message")
hmac_sha3_512
用sha3_512计算hmac。 返回一个二进制数组。
hmac_sha3_512("secret", "my authenticated message")
html_select
解析一个html文档并返回匹配CSS选择器的第一个元素。返回值是一个表格,其中text为内部文本,attrs是元素属性的表格。
csrf = html_select(html, 'input[name="csrf"]')
token = csrf["attrs"]["value"]
html_select_list
与html_select相同,但返回所有匹配,而不是第一个匹配。
html_select_list(html, 'input[name="csrf"]')
http_basic_auth
使用基本身份验证发送GET请求。如果没有设置WWW-Authenticate头并且状态码不是401,则返回true。
http_basic_auth("https://httpbin.org/basic-auth/foo/buzz", user, password)
http_mksession
创建一个session对象。这与python-request中的requests.Session类似,并且会跟踪cookie。
session = http_mksession()
http_request
准备一个http请求。第一个参数是从该会话被复制到请求中的会话引用和cookies。发送请求后,响应中的cookie将被复制回会话中。
下一个参数是method,url和其他选项。请注意,即使没有设置选项,你仍然需要指定一个空表{}。有以下选项可用:
query - 应该在url上设置的查询参数的映射
headers - 应该设置的头映射
basic_auth - (未实现)使用{“user, “password”}配置基本auth标头}
user_agent - 用字符串覆盖默认的用户代理
json - 应该被json编码的请求体
form - 应该进行表单编码的请求体
body - 作为字符串的原始请求体
req = http_request(session, 'POST', 'https://httpbin.org/post', {
    json={
        user=user,
        password=password,
    }
})
resp = http_send(req)
if last_err() then return end
if resp["status"] ~= 200 then return "invalid status code" end
http_send
发送使用http_request构建的请求。使用以下键返回表格:
status - http状态码
headers - 表格头
text - 响应体作为字符串
req = http_request(session, 'POST', 'https://httpbin.org/post', {
    json={
        user=user,
        password=password,
    }
})
resp = http_send(req)
if last_err() then return end
if resp["status"] ~= 200 then return "invalid status code" end
json_decode
从json字符串解码lua值。
json_decode("{\"data\":{\"password\":\"fizz\",\"user\":\"bar\"},\"list\":[1,3,3,7]}")
json_encode
将lua值编码为json字符串。请注意,空表格被编码为空对象{}而不是空列表[]。
x = json_encode({
    hello="world",
    almost_one=0.9999,
    list={1,3,3,7},
    data={
        user=user,
        password=password,
        empty=nil
    }
})
last_err
如果未记录错误,则返回nil,否则返回字符串。
if last_err() then return end
ldap_bind
连接到ldap服务器并尝试使用给定的用户进行身份验证。
ldap_bind("ldaps://ldap.example.com/",
    "cn=\"" .. ldap_escape(user) .. "\",ou=users,dc=example,dc=com", password)
ldap_escape
以相对专有名称转义属性值。
ldap_escape(user)
ldap_search_bind
连接到ldap服务器,登录到用户搜索,搜索目标用户并尝试使用搜索返回的第一个DN进行身份验证。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载