XSS实战 跳转XSS

栏目: 编程工具 · 发布时间: 5年前

内容简介:跳转XSS实际上并不是一种新类型的攻击方式,主要形成原因是 以前网站外部跳转时是直接接受参数然后跳转,导致了URL重定向漏洞.而现在网站喜欢加个跳转页,不会直接跳转,而是接受参数然后用js跳转. 这就有一个问题 如果未验证参数, js跳转时是可以接受JavaScript伪协议执行js代码的.以拉勾网为例,作者打开页面都会先看看js里有什么信息.很快发现js里有这段代码

XSS实战: 跳转XSS

跳转XSS实际上并不是一种新类型的攻击方式,

主要形成原因是 以前网站外部跳转时是直接接受参数然后跳转,导致了URL重定向漏洞.而现在网站喜欢加个跳转页,不会直接跳转,而是接受参数然后用js跳转. 这就有一个问题 如果未验证参数, js跳转时是可以接受JavaScript伪协议执行js代码的.

漏洞代码示例

<?php
	echo "<script>window.location.href = $_GET['url']</script>";
?>

实战例子

以拉勾网为例,作者打开页面都会先看看js里有什么信息.很快发现js里有这段代码

XSS实战 跳转XSS

显然只有有参数的才能引起兴趣.作者快速尝试了 https://sec.lagou.com/verify.html?e=test1&f=test2

发现url参数直接进入了页面,当然与本次主题有关的是参数 f .虽然另一个更直接. 它在页面的位置是

function submit1(data){
        var host = "test2";
        $.ajax({
            url: 'parseSession',
            type: "post",
            dataType: "json",
            data: {
                challenge: data.challenge,
                errcode:1
            },
            success: function (result) {
                window.location.href = host;
            }
        })

        //$.getJSON('/user/sendCode.json', {t: new Date().getTime(), type: $('#contactSelect').val()}, function (data)
    }

尝试引入双引号.被转义了.所以这个参数就没问题了么?并不是.下面的代码使用了这个参数进行跳转.

可以使用 https://sec.lagou.com/verify.html?e=1&f=JavaScript:alert(1) 弹框.

首先拉勾网是没有src的,别想了. 另外现在这个问题似乎已经修复了?访问 https://sec.lagou.com/parseSession会302. .

e参数没修.e出现的代码为

$('#submit').click(function() {
        var code = document.getElementById('code').value;
        if (!code) {
            showError('请填写验证码');
            return;
        }
        else{
            console.log("111111")
            console.log(test1)
            $.ajax({
                url: 'checkcode',
                type: "post",
                dataType: "json",
                data: {
                    t: new Date().getTime(),
                    code: code,
                    errcode :test1;
                },
                success:function (data) {
                    console.log(data)
                    if (data.state == 1) {
                        goToUrl(getUrlParam("f"))
                    } else {
                        showError("验证码错误,请重新输入!")
                    }
                }
            })
        }
    });

双引号和单引号均被转义,有兴趣的读者可以作为对自己的挑战.还有过滤的waf


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Operating Systems

Operating Systems

Remzi Arpaci-Dusseau、Andrea Arpaci-Dusseau / Arpaci-Dusseau Books / 2012-8-19 / USD 21.00

A book about modern operating systems. Topics are broken down into three major conceptual pieces: Virtualization, Concurrency, and Persistence. Includes all major components of modern systems includin......一起来看看 《Operating Systems》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具