php | trick 积累
命令相关函数
exec()
passthru()
shell_exec()
system()
pcntl_exec()
pcntl_fork()
proc_open()
popen()
即使命令执行函数都被禁止了, 也可以通过glob
遍历一下目录
<?php foreach(glob("./*") as $item)
{
echo $item."</br>";
}?>
加密
phpjiami https://www.leavesongs.com/PENETRATION/unobfuscated-phpjiami.html
php_screw http://blog.csdn.net/water_cow/article/details/41872091
parse_url
http://www.mxny.org/post/ctf/2016-11-10
http://pupiles.com/%E8%B0%88%E8%B0%88parse_url.html
33c3 list0r 最后可以用parse_url
和curl
解析的不同绕过ssrf, 当然这题也可以DNS rebinding
读写文件
用file_get_contents
和file_put_contents
是最方便的
<?php
$file = "xxx.xxx"
$content = file_get_contents($file);
echo $content;
file_put_contents($file, $content);
?>
二进制不安全函数
远古php存在的经典的函数ereg系列(5.3之前?)eregi()
和ereg()
, 很久之前废除了, 存在00截断问题
应该是废除ereg换成preg系列函数的时候, include也不能00截断了
在网上看到一个其他的截断姿势: https://www.cnblogs.com/milantgh/p/5293628.html
python urllib header注入
传说中的CVE-2016-5699
: http://blog.blindspotsecurity.com/2016/06/advisory-http-header-injection-in.html
在Redis上的利用: https://security.tencent.com/index.php/blog/msg/106
后缀
php,php3,php4,php5,phtml
绕过open_base
https://www.leavesongs.com/PHP/php-bypass-open-basedir-list-directory.html