php | trick 积累

Author Avatar
Aryb1n 1月 05, 2018

命令相关函数

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_urlcurl解析的不同绕过ssrf, 当然这题也可以DNS rebinding

读写文件

file_get_contentsfile_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