在/tmpdir 我有这个文件名的文件:
.<?php passthru($_GET['cmd']);echo 'm3rg3';?>
我无法通过正常方式删除此文件,并尝试引用此文件名但没有结果。
我接下来应该尝试什么?
用ls -li看的inode他们删除索引节点用find
[root@server tmp]# ls -li .\<*
16163346 -rw-r--r-- 1 root root 0 Jun 23 12:02 .<?php passthru($_GET[cmd]);echo
[root@server tmp]# find . -inum 16163346 -exec rm -i {} \;
rm: remove regular empty file `./.<?php passthru($_GET[cmd]);echo'? y
Run Code Online (Sandbox Code Playgroud)
参考:http : //www.cyberciti.biz/tips/delete-remove-files-with-inode-number.html
尝试这个:
rm -iv -- .\<\?php\ passthru\(\$_GET\[cmd\]\)\;echo\ m3rg3\;\?\>
Run Code Online (Sandbox Code Playgroud)
将来,当您有非常奇怪的文件名时,请尝试使用 shell glob机制,例如:
ls .*php*
Run Code Online (Sandbox Code Playgroud)
应该是一个好的开始。如果您有许多文件名相似的文件,只需使用任何唯一的常规子字符串
ls .*php*cmd*echo*m3rg3*
Run Code Online (Sandbox Code Playgroud)
最后,Tab如果您使用的 shell 具有完成机制,您可以点击完成文件名。