exif xss 复现

    最近玩xss挑战玩到第14关,玩不下去了,因为第14关中的一个URL失效了。后面百度了一下,发现第14关是玩的是图片exif信息中xss,于是决定自己复现一下。

   

1,什么是exif

可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。可使用鼠标右键进入属性页面查看部分信息。

2,怎么修改exif信息

linux系统使用exiftool工具,进行修改。windows系统直接使用鼠标右键进入属性页面直接修改。

linux系统系统

安装exiftool工具:sudo apt install exiftool

在图片作者栏中写入payload:  exiftoll  -artist='"<img src=1 onerrror=alert(/shy/)>'  exif.jpg

上传到可以读取图片exif信息的网站,出现弹窗,复现成功。

windows操作系统                                 

鼠标右键进入属性页面

双击直接填写payload

上传弹窗

3,exif xss漏洞原理

有些网站有读取图片exif信息的功能,当网站读取到的恶意的exif信息就会触发这个payload,上面已经演示过了。

有些谷歌浏览器安装了EXIF Vewer插件,而chrome Exif Viewer插件获取图片exif信息的时候没有过滤,导致了XSS代码的执行。

演示:

1,按照上传方法在图片exif信息中写入xss payload

2,下载Exif Viewer插件

a,在网上好不容易找了一个下载地址:https://chromecj.com/downloadstart.html#56发现还需要关注公众号,输入验证码

b,查看页面源代码,发现javascript脚本

<script type="text/javascript">function checkcode() {
        var code = $('#txtcode').val();
        var id = document.location.hash.replace('#', '');
        if (code.length != 6) {
            $('#tip').html('请输入6位数字验证码!').css('color', 'red');
            return;
        } else {
            $.get('https://chromecj.com/Home/DownCheck?aid=' + id + '&code=' + code, function(r) {
                if (r == '') {
                    $('#tip').html('验证失败,请重试!').css('color', 'red');
                    return;
                } else {
                    var result = JSON.parse(r);
                    if (result != '') {
                        var status = result.status;
                        var file = result.file;
                        if (status == 0) {
                            $('#tip').html('验证码已失效,请在公众号重新获取,五分钟有效!').css('color', 'red');
                            return;
                        } else {
                            $('#tip').html('验证通过,下载马上开始!').css('color', 'green');
                            setTimeout("down()", 2000);
                        }
                    }
                }
            });
        }
}

function getlink(link, key) {
    var code = '';
    if(key != ''){
        code = '提取码:'+ key;
    }
    return '<b style="color:red;">本站使用百度云分流,请点击链接前往百度云下载:<a target="_blank" rel="nofollow" href="' + link + '">' + link + '</a> '+ code +'</b>';
}

function down() {
        var id = document.location.hash.replace('#', '');
        var html = document.getElementById('downdesc');
        if (id == 60) {
            html.innerHTML = getlink('https://pan.baidu.com/s/1miyYjig', '');
        } else if (id == 177) {
            html.innerHTML = getlink('https://pan.baidu.com/s/1mi7fFIw', '');
        } else if (id == 391) {
            html.innerHTML = getlink('https://pan.baidu.com/s/1Wis3ahkav7L21p3NmRFmQw', '64ui');
        } else if (id == 24) {
            html.innerHTML = getlink('https://pan.baidu.com/s/1nvxAq1b', '');
        } else {
            window.location = 'https://chromecj.com/Handler/Download/' + id;
        }
}</script>

c,根据上述信息,构造下载url:https://chromecj.com/Handler/Download/56,成功下载到绕过验证,下载到该插件。

3,安装chrome插件Exif Viewer

a,直接拖入chrome浏览器扩展程序页面,提示程序包无效

b,将插件的.crx后缀名修改为.rar后缀名,然后进行解压

c,打开chrome浏览器的开发者模式

d,选择加载已解压的扩展程序进行插件安装,安装成功,如下图。

4,将图片上传到vps,使用chrome浏览器进行访问,复现成功。

发布了41 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_32393893/article/details/104814749
xss