<?php
namespace home\controller;
use think\controller;
class indexcontroller extends controller
}
我們在瀏覽器訪問
快取檔案的名稱8d777f385d3dfec8815d20f7496026dc
就是s('data',$data);
中data
的md5
打斷點進入s()
方法
跟進寫快取部分的**return $cache->set($name, $value, $expire);
檔名來自filename()
函式,在有原始碼的情況下這是已知的
$data
來自序列化之後的$value
,$value
可控
$data = serialize($value);
現在的$data
是"s:6:"spring";"
接下來的這段**是寫入檔案的關鍵
$data = "<?php \n//" . sprintf('%012d', $expire) . $check . $data . "\n?>";
$result = file_put_contents($filename, $data);
這裡使用了file_put_contents()
函式,另外寫入的部分用了//
注釋符防止其被解析,但我們可以使用換行符等進行繞過
所以最終我們的poc為
0x0d - \r, carrige return 回車快取檔案內容為0x0a - \n, new line 換行
windows 中換行為0d 0a
unix 換行為 0a
ThinkPHP3 新增,修改,刪除
goods控制器的 add 方法中獲取商品分類 在add.html中迴圈獲取 方法一 create 的作用 php中新增的語法如下 success 和 error 方法是thinkphp 自帶的執行成功和失敗的方法,可以用此方法來實現跳轉。i 用來獲取 get post session cookie...
ThinkPHP 3種例項化model方法
1.例項化model 的三種方式 1.goods new 命名空間 goodsmodel 2.goods d 模型標誌 a goods d goods b 該 goods 是父類model 的物件,但是操作的資料表還是 sw goods c obj d 例項化 model 物件,沒有具體運算元據表,...
關於thinkphp3自動完成的筆記
當我在前台傳入的主鍵id與字段表的主鍵id值時,在更新時tp總是判斷為新增的狀態 解決辦法 將前台的表單主鍵名保持和資料表主鍵id名乙隻,手動建立資料 create時是先獲取主鍵id判斷 type type?empty data this getpk self model update self m...