前言:

今天学习了重定向漏洞,这个漏洞比较好理解

漏洞名: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重定向漏洞检测脚本相关推荐

  1. URL重定向-跳转绕过

    作者:小刚 一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢 本实验仅用于信息防御教学,切勿用于其它用途 URL重定向-跳转绕过 URL重定向 一般利用点 利用姿势 修复 URL重定向 服务端未对传 ...

  2. DNS解析记录中的CNAME与URL重定向(301/302)区别

    DNS解析记录中的CNAME与URL重定向(301/302)区别 CNAME解析:   CNAME 被称为规范名字.这种记录允许您将多个名字映射到同一台计算机. 通常用于同时提供WWW和MAIL服务的 ...

  3. python phpstudy_GitHub - Writeup007/phpStudyBackDoor: phpStudy后门检测与利用工具,Python脚本,可一键 GetShell。...

    phpStudyBackDoor phpStudy后门检测与利用工具,Python脚本,可一键 GetShell. 简述 2019年9月20日,网上传出 phpStudy 软件存在后门,随后作者立即发 ...

  4. python获取重定向url_python中检测url重定向到的地址的例子

    2016年最长的假期也过了,这周连上7天班,之前还觉得挺恐怖,没想到这周真是要忙死的节凑,还真没觉得多漫长,一晃明天就周五了,干运维的就是突发的事情多,冷不丁的不知道哪里就冒出个问题,就够搞半天的,最 ...

  5. Python 被爆大 Bug,攻击者可远程代码执行漏洞!

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 近日,Python 软件基金会(PSF)释出 Python 3.8.8 和 3.9.2  版本,该版本主要修复了两个值得注意的安全漏洞,其 ...

  6. 魔兽世界python脚本拍卖行_利用python脚本进行资产监测

    写在前头一些与本文无关的话 好久好久没有写博客了,上次写的那篇离现在也有大半年了.这大半年去了公司实习,公司事情比较多也没时间整理. 好吧!主要还是因为懒,在这期间也想恢复想blog的,但又被心中那个 ...

  7. URL重定向漏洞钓鱼

    URL重定向漏洞钓鱼 目录 钓鱼攻击: 使用场景: 漏洞分析: 1. 成因: 2. 原理: 3. 常见的绕过手段: 5. 漏洞发生: 6. 漏洞总结: 风险级别: 高风险 风险描述: 攻击者可以将参数 ...

  8. python脚本如何监听终止进程行为,如何通过脚本名获取pid

    文章目录 一.前言 二.最初的想法:直接获取脚本中的变量值 1.获取运行中py脚本的变量值 2.换一种方式 3.为什么不能获取脚本中的变量 4.下下策,使用使用python的gdb调试工具 三.pyt ...

  9. python写linux脚本_Linux下设置python脚本文件为服务

    (最简单的方式nohup python xxx.py) ------------------------------------------------------------------------ ...

最新文章

  1. Java之HashMap源码解析1
  2. 在EF中使用SQL执行简单高效的增删查操作
  3. 【通知】2020年有三AI-CV夏季划升级,更多项目,更高难度,更加落地
  4. zoj-3624(Count Path Pair)组合数+乘法逆元
  5. Ribbon自带负载均衡策略比较
  6. 越来越受欢迎的Vue想学么,90后小姐姐今儿来教你
  7. COACH与得物App达成官方合作 未来计划提供专供款商品
  8. squid代理简单应用
  9. 理解JavaScript内联命名函数---var fun = function f() {}
  10. 记一次微信APP支付开发返回-1的坑
  11. 航班网站php项目,php的实时航班api调用代码实例
  12. java生成随机数的代码_java生成随机数的代码
  13. 图的常见衡量指标及算法调研
  14. 【前端三剑客一】 HTML
  15. ios kb转m_ios压缩到指定的 KB
  16. 北京注册的公司如何缴纳公积金
  17. C语言Windows命令行编程
  18. 学习项目1(移动端京东)
  19. 思维导图软件 XMind 8 和 XMind 2020的选择
  20. 国内与国外的域名注册商的不同

热门文章

  1. mysql忽略数据类型_MYSQL 常用数据类型
  2. aws s3 獲取所有文件_AWS SA associate 证书考试学习记录-EBS,S3,EFS比较
  3. html5input输入框设置无边框_芯片充电两大改变,无看点的iPad8,上手体验发现并不简单!...
  4. 光纤收发器常见的一些问题和检测方法
  5. 【渝粤教育】21秋期末考试混凝土结构10515k1
  6. 【渝粤题库】广东开放大学 文化市场营销 形成性考核 (2)
  7. 面向空天地一体多接入的融合6G网络架构展望
  8. php提前用户系统时间限制,php date()比服务器时间提前一小时(DST问题)
  9. 缓冲区溢出漏洞攻击之用户登录
  10. 不全?MySQL数据类型精讲,定点日期枚举文本字符串,json二进制,空间,选择建议,完整详细可收藏