云来储存型XSS漏洞+越权修改应用封面

时间:2024-04-23 00:05:30

0x001.

今天本来想看看场景应用有什么新功能没,于是乎随便打开了一个场景应用,然后上传了一张图片修改下封面,结果我看到firefox 网络竟然有2个post,不由得勾起我的好奇心,好奇害死猫嘿嘿。(习惯性浏览网页开着firebug)云来储存型XSS漏洞+越权修改应用封面

一般来说图片上传都是一个post解决呢,为何有2个post,经过我一番查看发现整个流程是这么来走的:

Post一张图片到服务器,然后get 到图片在服务器的路径,然后再通过最后的post 更新数据库,估计数据库中单独存在着一张表来保存这玩意。云来储存型XSS漏洞+越权修改应用封面

表结构可能如下:

某表

字段名

类型

Id

Int

App_logo

Varchar (50)

先看看能不能越权什么的,这里我把id改为我另外一个号的的场景应用的id号15196看看能不能修改。

云来储存型XSS漏洞+越权修改应用封面

发现可以修改成功,所以说这个地方存在的越权操作。

云来储存型XSS漏洞+越权修改应用封面

云来储存型XSS漏洞+越权修改应用封面

再来玩玩sql注入,语句猜测:

update pic set app_logo = '{$src}' where id = {$id};

Id:15196'后面加个单引号,发现不报错,尼玛。

转16进制 0x3136393535 塞进去,提示案例不存在
摆明了。Id被引号给包起来了。

测试发现
在id后面加字母什么的不报错但是在之前加就报错,好吧,–》被转成整形了。

Id不做想法了。来看看app_logo 字段。云来储存型XSS漏洞+越权修改应用封面

单引号被插入了数据库。

这里先来了解下:

<img src =" " >  src 处可以导入一个js的脚本文件或者执行相关的js代码,或者通过src的可控性闭合img标签,再导入js代码来xss不同的浏览器处理不同。<img src="javascript:alert(/xss/)">这种语句已经不能在IE7.0以上和火狐运行,而旧版的遨游和其他的一些IE内核浏览器还可以,估计是被开发人员故意封掉的。随着浏览器的更新换代,这种语句的成功率越来越低。

由于json格式数据的标准是用双引号引起来。这个页面的源码是<img id="app-log" src="">

估计是没法插入双引号进行闭合,哪位基友有思路求科普。

我们这里直接插入js代码试一下:云来储存型XSS漏洞+越权修改应用封面

Tengine 这玩意web服务器给禁止了,我们来绕过他一下

由于html的属性支持ASCII码特性,

<img src="javascript:alert(0);" >云来储存型XSS漏洞+越权修改应用封面

我们传入到数据库来看看,云来储存型XSS漏洞+越权修改应用封面

好吧&被转实体了,没办法了么?

Ok继续变形 js

云来储存型XSS漏洞+越权修改应用封面

我们把 "javascript:\u0061\u006c\u0065\u0072\u0074\u0028\u0030\u0029\u003b" 插入。

么么哒,成功绕过。

云来储存型XSS漏洞+越权修改应用封面

上xss平台创建一个项目
代码。。插进去。。。

云来储存型XSS漏洞+越权修改应用封面

最后img xss 虽然有些过时,但是市面上还是存在部分ie内核浏览器支持,利用这个img xss 配合前面的越权,可以打任意用户cookie 。。。

安全盒子原创文章:转载请注明安全盒子SecBox.cn