首页 > 其他分享 >web基础漏洞-url重定向漏洞

web基础漏洞-url重定向漏洞

时间:2023-10-21 19:33:07浏览次数:34  
标签:web www url hostname 漏洞 域名 参数 com

1、介绍

url重定向漏洞,是指攻击者可以控制用户的浏览器中的url形式参数,并被解析执行,造成危害。

2、场景

2.1 跳转

使用户信任新跳转的站点,进行钓鱼

  • 3xx location字段
  • js跳转
  • form跳转
  • 超链接a

2.2 引入资源

利用:钓鱼,引入脚本,向外部请求提供referer

  • script
  • style
  • link
  • iframe
  • img
  • audio等

2.3 发送消息

可以是向攻击者传递敏感信息,也可以是对目标域伪造请求

  • form表单
  • ajax
  • 任意url

3、补充

3.1 参数位置

  • 请求中携带参数,响应直接写入
  • 响应js读取地址栏,获取参数
  • 多次请求-响应,中间过程将参数在请求中携带、或者在地址栏存储,或者保存到cookie或localstorageh中。

3.2 参数形式

  • 完整url
  • 去除协议部分,甚至只有域名部分
  • 相对路径或绝对路径

4、防护

(1)尽量使用完整url,方便检查

(2)前端或后端涉及到url参数时,严格检查其hostname

5、发现测试

(1)发现url形式参数

可能是在url的直接参数、地址栏的参数、cookie值、html元素的属性或值、localstorage

(2)分析参数使用过程

可能是请求携带,响应的location头部字段包含,也可能是作为响应中ajax地址、一般元素的属性、js变量、cookie字段

参数可能不经过请求响应,直接在客户端的地址栏直接参数或hash,然后由js处理

需要注意,攻击者如何控制该参数

(3)完整url-绕过

  • 测试参数url的直接参数,写入当前url,以绕过仅直接的域名包含检查
  • 测试参数url的hostname的顶级域名。尤其是xxx.com.cn绕过xxx.com。以绕过仅主域名的检查
  • 测试参数url的hostname的主域名作为新的主域名的后缀,比如www.abc.com和www.testabc.com
  • 测试参数url的hostname的现有域名作为新域名的子域名部分,比如www.abc.com和www.abc.com.test.com
  • 测试参数url的hostname以当前hostname作为username,比如www.abc.com和[email protected]
  • 有时候参数仅有域名,也可以进行测试
  • 有时候参数仅为相对路径,可以测试直接设置为绝对路径,或者将前面的待拼接路径使用@拼接,使原域名作为username部分

一方面,通过检查响应是否包含测试的核心payload,比如test,进行分析。另一方面,考虑结合浏览器,根据是否请求自定义域名判断

(4)非完整url

  • 直接设置为完整url,参考以上方法进行绕过
  • 构造username,进行绕过

6、实战经验

值得一提的是,某次测试过程中,同时检查了url的主机名需要包含特定后缀,还检查了url整体需要包含特定域名的字符串

所以,最终构造时,在参数部分去设置url整体检查的内容

标签:web,www,url,hostname,漏洞,域名,参数,com
From: https://www.cnblogs.com/wd404/p/17533265.html

相关文章

  • JavaWeb-初识Spring
    目录Spring简介Spring项目Bean管理基于xml的Bean管理创建对象属性注入基于xml+注解的Bean管理创建对象属性注入基于纯注解的Bean管理内容Spring简介Spring是什么Spring是于2003年兴起的一个轻量级的Java的开放源代码的设计层面框架......
  • BUG:cURL error 60: SSL certificate problem: unable to get local issuer certificat
    PHPssl证书问题(我的环境是phpstudy)解决方案:1.https://curl.se/docs/caextract.html 打开网址,下载最新PEM 2.将证书放进对应PHP版本extras/ssl文件里面3.修改对应版本的PHP.INI 4.重启PHP问题解决 ......
  • 浏览器输入url到网页展示过程
    总图:1.解析URL​ 浏览器的第一步工作是解析url,从而生成发送给web服务器的请求信息。​ URL组成如图:如果上图中表示数据的源的路径名为空呢?这时浏览器会默认访问根目录下的/index.html或者/default.html文件,当对URL解析完成后,浏览器就会开始构造HTTP请求消息2.DNS查询​ ......
  • javaweb
    web.xml配置文件<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java......
  • 一文1000字彻底搞懂Web测试与App测试的区别
    总结分享一些项目需要结合Web测试和App测试的工作经验给大家:从功能测试区分,Web测试与App测试在测试用例设计和测试流程上没什么区别。而两者的主要区别体现在如下几个方面:1系统结构方面Web项目,B/S架构,基于浏览器的;Web测试过程中,客户端会随服务器端同步更新,所以只需更新服务器......
  • 泛微E-Office init.php SQL注入漏洞
    漏洞简介泛微E-Office协同办公平台/E-mobile/App/Init.php接口存在SQL注入漏洞,攻击者可利用该漏洞执行任意SQL语句,进行增、删、改、查等数据库操作,造成数据库敏感数据信息泄露或被篡改;漏洞复现fofa语法:app="泛微-EOffice"登录页面如下:POC:POST/E-mobile/App/Init.php?m=......
  • 缺少几个'?'引起的WebSQL失效
    原来的数据库只有两列:english,chinese,       db.transaction(function (tx) {                tx.executeSql(                    'INSERT INTO USERS (english,chinese) VALUES (?,?)',              ......
  • java基础漏洞学习----基础命令执行漏洞
    java基础漏洞学习----基础命令执行漏洞基础命令执行常见方法1.ProcessBuilderpackagecom.example.servletdemo;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjavax.servlet.ServletException;importjavax.servl......
  • thinkPHP 项目只需要单个项目模块,比如去掉url中的admin
    thinkPHP项目只需要单个项目模块,比如去掉url中的admin这里以thinkPHP为例这里以thinkPHP为例1、找到入口文件的index.php,加入下面的define(‘BIND_MODULE’,‘admin’);<?php//定义应用目录define('APP_PATH',__DIR__.'/application/');//路由改写define('BIND_MODUL......
  • curl 请求接口数据
    CURL操作初始化指定的接口地址url就是$postUrl需要用户和密码鉴权,需要头部传递信息对认证证书来源的检查和从证书中检查SSL加密算法是否存在模拟用户使用的浏览器设置端口表示需要responsebody要求结果为字符串且输出到屏幕上post提交方式添加头,在name和pass处填写对应账号......