一次工作中的APP CSRF 任意文件删除漏洞案例

function type2_dele(id){

     $.getJSON(‘dele_us_type2.htm’,{strategyId:id},function(data){

      if(data.flag){

       alert(“删除成功!”);

       searchData(2);

      }

     });

    }

    function type3_dele(id){

     $.getJSON(‘dele_us_type3.htm’,{viewImgId:id},function(data){

      if(data.flag){

       alert(“删除成功!”);

       searchData(3);

      }

dele_us_type2应该是被管理员删除了

其中的viewImgId参数就是删除的randow用户随机图片

默认返回的json,http://www.XXX.com/dele_us_type3.htm?viewImgId=就是flase

这里只是写了一个判断,判断如果成功图像属性,即删除成功

并没有对声明的type3_dele 函数viewImgId进行token的判断

这就造成了可以进行交互性测试

首先准备用户1,用户1,就是攻击方,发起攻击的用户

准备用户2,受害方,就是受害的用户

而dele_us_type3.htm就在用户相片,首先,在受害方APP程序传两张图片任意

一次工作中的APP CSRF 任意文件删除漏洞案例

然后通过APP抓包

得到数据

为此,写个程序演示

一次工作中的APP CSRF 任意文件删除漏洞案例

这就是受害方的数据

其中注意:

“ID_VIEW_IMG”:”f0ad1f7e785911180178ac2d1a3b0054″

我们要测试的就是这个

我们要在受害方2退出cookie情况下,登录受害1的用户(理论上如果存在这种缺陷也可以不用登录)

删除受害2的数据

受害方为APP

攻击方为网页

我们先进行攻击方的POST方法,我们尝试删除

一次工作中的APP CSRF 任意文件删除漏洞案例
一次工作中的APP CSRF 任意文件删除漏洞案例

这时候攻击方已经加载POST的cookie,实现了自动登录

接下来读取受害者的数据

然后我们退出受害者的cookie

接下来需要做的就是尝试删除

f0ad1f7e785911180178ac2d1a3b0054

图片

在程序输入f0ad1f7e785911180178ac2d1a3b0054

一次工作中的APP CSRF 任意文件删除漏洞案例
一次工作中的APP CSRF 任意文件删除漏洞案例

这时候我们再次登录受害者的账号

一次工作中的APP CSRF 任意文件删除漏洞案例

发现两张照片已经变成了一张照片,证明漏洞利用成功

(本文作者风哥,感谢投稿)



发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注