web安全学习笔记(16)

记一下第27-28课的内容。Token 验证 + URL跳转漏洞的类型与三种跳转形式;URL跳转漏洞修复 + 短信轰炸漏洞绕过挖掘

一、token有关知识

什么是token?token是用来干嘛的?_token是什么意思-CSDN博客

二、URL跳转漏洞

我们在靶场中,如果没有登录就想进行购买操作,会弹出提示让我们先登录:

我们点击“去登陆”,然后看上面的URL,会有一个redirect:

如果我们对redirect后面的内容进行修改,比如说修改为www.baidu.com,这样我们就会跳转到别的网站去,这就是URL跳转的漏洞。

URL跳转漏洞的分类:

①无需登录跳转

②需登录跳转

跳转形式的分类:

①Hearder重定向

②Js跳转

③HTML跳转

这里content = 5指的是等待5秒跳转

URL跳转漏洞-CSDN博客

三、URL跳转漏洞的修复

parse_url()函数的功能是把URL拆分成一位数组的形式:

<?php
    $url = $GET['url'];
    $array = parse_url($url);
    var_dump($array);

结果如下图所示:

scheme代表的是协议,host代表的是域名,path代表的是地址。此外,还有可能有query部分。我们主要使用的是host,通过判断要跳转的URL的host是否与当前访问域名的host相同,来进行URL跳转漏洞的修复。下面是一种有效修复方案的演示:

<?php
    $url = $GET['url'];

    #获取要跳转的URL地址的host
    $array = parse_url($url);
    $Location_Host = $array['host'];

    #获取当前访问域名的host
    $Current_Host = $_SERVER['host'];

    #判断两者是否相同
    if($Location_Host != $Current_Host){
        die('跳转的域名地址不对!');
    }

下面再介绍一种方法:

<?php
    $url = $GET['url'];
    if(strstr($url,$_SERVER['HTTP_HOST']) === false){
        die('跳转地址不对!');
    }
    echo '开始跳转!';

这里strstr函数的功能是,搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。因为这个函数只扫描是否存在,我们仍然可以进行绕过:

②或者使用#,但是不能直接使用,要转换成URL编码才行,#的URL编码是%23,#的作用是忽略掉后面的内容,相当于注释,我们通过把正确的URL放到#后面,把它注释掉,但是仍然可以绕过strstr函数的检测,实现URL跳转漏洞。

③或者直接创建一个目录,也可以实现绕过:

关于URL跳转漏洞更详细的内容:URL跳转漏洞-CSDN博客

四、短信轰炸漏洞

1.漏洞类型

①定向轰炸:针对于单个手机号进行批量式发送短信

②横向轰炸:不能对单个手机号造成影响,但是却可以浪费企业的资产

2.绕过思路

①空格绕过

用burp进行爆破,每发一次就在手机号后面加一个空格。但是由于ThinkPHP框架会自动过滤掉空格,这里的演示并不成功:

②换行绕过

然而,回车可以起到跟空格一样的作用,我们可以每发送一次就加一个回车:

回车的URL编码是%0a,因此我们可以直接每发送一次就加一个%0a,这样就可以绕过,而至于短信运营商发送短信的时候,会自动对空格、换行进行过滤,可以成功地将短信发送出去:

③数组绕过

有的短信运营商可以一次给多个手机号发送短信,比如说,要求传入的手机号用逗号分隔:

13333333333,16666666666,18888888888        假设这就是手机号参数

这就给了我们一个可乘之机,我们可以每发送一次就在数据包里面增加一个手机号,如果后端的判断是每次的手机号参数不能一样,我们就可以通过这样的方式轰炸一个或多个多个手机号:

  • 21
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值