python漏洞检测脚本_URL重定向漏洞,python打造URL重定向漏洞检测脚本
前言:
今天学习了重定向漏洞,这个漏洞比较好理解
漏洞名:URL重定向漏洞
威胁:低
漏洞的来源:开发者对head头做好对应的过滤和限制
例子:
有漏洞的网站:http://a.com/x.php?url=http://a.com/login.php
这时我们通过写个url后面的链接让其跳转到指定的页面。例:http;//a.com/x.php?url=http://www.baidu.com
可搭配使用的漏洞:
CSRF 当一个网站存在CSRF漏洞的时候,而你知道了创建后台管理员的链接。修改链接,运用URL重定向漏洞。在进行短链生成
储存型XSS 当一个网站存在储存型XSS漏洞的时候,你插入了一个盗取cookie的js。配合URL重定向漏洞,让受害者直接跳转到该页面
正文:
这里我们使用BWAPP这个漏洞网站来进行URL重定向测试。
http://192.168.3.41/bWAPP/unvalidated_redir_fwd_1.php
未过滤的重定向与转发
点击Beam按钮跳转到
打开Burpsuite抓包一看
发现参数是这样的url=xxxx&form=submit
发送到repeater
修改url=http://www.baidu.com
产生302跳转。跳转页面为http://www.baidu.com
回到刚刚的位置放包一看,跳转
中级尝试
一样抓包
直接进行改链,发现跳回到登录页面。仔细对比发现,中级防御通过cookie的设置来判断
将其改为0在改其url后面的参数,直接跳转
高级尝试
高级和中级防御没区别。只是将cookie后面的值改为2。直接改0,将其链接设置跳转成博客园的链接
博客园这里要经过两次跳转
验证URl重定向的漏洞脚的本代码:
importrequests,timedefpoc():
user=input('Please enter the web site to be tested:')
user2=input('Please enter the parameters you want to bring in:')
values=user2.strip().split('?')[-1]
params={}for line in values.split('&'):
key,value=line.split('=',1)
params[key]=valueprint('URL:',user)print('The parameters you have taken are:',params)
time.sleep(0.2)print('If you want to change the parameters, please enter y')print('Do not need to change to enter n')
user3=input('Do you want to change your parameters[y/n]:')if user3 == 'y':whileTrue:print('Please enter the name of the parameter you want to change{name: value}')print(params)
user4=input('Please fill in the name:')
user5=input('Please enter the value you want to change:')
params['{}'.format(user4)]='{}'.format(user5)print('The change is done, and your current parameter is',params)
user6=input('Do you want to continue to love the parameters more[y/n]?:')if user6 == 'y':continue
elif user6 == 'n':break
elif user6 == '':breakurl=user.strip()
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
rest=requests.get(url=url,headers=headers,timeout=6,params=params, allow_redirects=False)print('Http_code:',rest.status_code)print(rest.headers)try:print(rest.headers['Location'])if rest.headers['Location'] == 'http://www.baidu.com':print('[*]There is a URL redirection vulnerability in this link')else:print('[+]There is no URL redirection vulnerability in this link')except:print('[-]not Location head')
poc()
运行结果如下:
总结:
虽然漏洞威胁不高但还是要防御。防御方法有以下几种:
可利用state参数进行防跨站攻击,验证302跳转回来带code参数的这个请求是否是攻击者伪造的,防止攻击者伪造请求。
对于外链攻击,可在支持HTML5浏览器的环境下给所有外部链接加上rel=noreferrer属性;对于老版本IE的处理方案是利用一个HTTPS进行跳转达到抹去referer的效果
PHP获取retferer判断来路防止非法访问:http://www.90tec.com/iwork/20.html
第二种我不喜欢,其他都还好
python漏洞检测脚本_URL重定向漏洞,python打造URL重定向漏洞检测脚本相关推荐
- URL重定向-跳转绕过
作者:小刚 一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢 本实验仅用于信息防御教学,切勿用于其它用途 URL重定向-跳转绕过 URL重定向 一般利用点 利用姿势 修复 URL重定向 服务端未对传 ...
- DNS解析记录中的CNAME与URL重定向(301/302)区别
DNS解析记录中的CNAME与URL重定向(301/302)区别 CNAME解析: CNAME 被称为规范名字.这种记录允许您将多个名字映射到同一台计算机. 通常用于同时提供WWW和MAIL服务的 ...
- python phpstudy_GitHub - Writeup007/phpStudyBackDoor: phpStudy后门检测与利用工具,Python脚本,可一键 GetShell。...
phpStudyBackDoor phpStudy后门检测与利用工具,Python脚本,可一键 GetShell. 简述 2019年9月20日,网上传出 phpStudy 软件存在后门,随后作者立即发 ...
- python获取重定向url_python中检测url重定向到的地址的例子
2016年最长的假期也过了,这周连上7天班,之前还觉得挺恐怖,没想到这周真是要忙死的节凑,还真没觉得多漫长,一晃明天就周五了,干运维的就是突发的事情多,冷不丁的不知道哪里就冒出个问题,就够搞半天的,最 ...
- Python 被爆大 Bug,攻击者可远程代码执行漏洞!
整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 近日,Python 软件基金会(PSF)释出 Python 3.8.8 和 3.9.2 版本,该版本主要修复了两个值得注意的安全漏洞,其 ...
- 魔兽世界python脚本拍卖行_利用python脚本进行资产监测
写在前头一些与本文无关的话 好久好久没有写博客了,上次写的那篇离现在也有大半年了.这大半年去了公司实习,公司事情比较多也没时间整理. 好吧!主要还是因为懒,在这期间也想恢复想blog的,但又被心中那个 ...
- URL重定向漏洞钓鱼
URL重定向漏洞钓鱼 目录 钓鱼攻击: 使用场景: 漏洞分析: 1. 成因: 2. 原理: 3. 常见的绕过手段: 5. 漏洞发生: 6. 漏洞总结: 风险级别: 高风险 风险描述: 攻击者可以将参数 ...
- python脚本如何监听终止进程行为,如何通过脚本名获取pid
文章目录 一.前言 二.最初的想法:直接获取脚本中的变量值 1.获取运行中py脚本的变量值 2.换一种方式 3.为什么不能获取脚本中的变量 4.下下策,使用使用python的gdb调试工具 三.pyt ...
- python写linux脚本_Linux下设置python脚本文件为服务
(最简单的方式nohup python xxx.py) ------------------------------------------------------------------------ ...
最新文章
- Java之HashMap源码解析1
- 在EF中使用SQL执行简单高效的增删查操作
- 【通知】2020年有三AI-CV夏季划升级,更多项目,更高难度,更加落地
- zoj-3624(Count Path Pair)组合数+乘法逆元
- Ribbon自带负载均衡策略比较
- 越来越受欢迎的Vue想学么,90后小姐姐今儿来教你
- COACH与得物App达成官方合作 未来计划提供专供款商品
- squid代理简单应用
- 理解JavaScript内联命名函数---var fun = function f() {}
- 记一次微信APP支付开发返回-1的坑
- 航班网站php项目,php的实时航班api调用代码实例
- java生成随机数的代码_java生成随机数的代码
- 图的常见衡量指标及算法调研
- 【前端三剑客一】 HTML
- ios kb转m_ios压缩到指定的 KB
- 北京注册的公司如何缴纳公积金
- C语言Windows命令行编程
- 学习项目1(移动端京东)
- 思维导图软件 XMind 8 和 XMind 2020的选择
- 国内与国外的域名注册商的不同
热门文章
- mysql忽略数据类型_MYSQL 常用数据类型
- aws s3 獲取所有文件_AWS SA associate 证书考试学习记录-EBS,S3,EFS比较
- html5input输入框设置无边框_芯片充电两大改变,无看点的iPad8,上手体验发现并不简单!...
- 光纤收发器常见的一些问题和检测方法
- 【渝粤教育】21秋期末考试混凝土结构10515k1
- 【渝粤题库】广东开放大学 文化市场营销 形成性考核 (2)
- 面向空天地一体多接入的融合6G网络架构展望
- php提前用户系统时间限制,php date()比服务器时间提前一小时(DST问题)
- 缓冲区溢出漏洞攻击之用户登录
- 不全?MySQL数据类型精讲,定点日期枚举文本字符串,json二进制,空间,选择建议,完整详细可收藏