我們先使用/index.php/index/index/test,就是圖中的test()方法
/index.php/index/index/index,這個回顯就是111
http://127.0.0.1:83/index.php/index/index/test2?x=123456
public function test2()
{$x=$_GET['x'];return $x;
}
這里再做一個案例更詳細一點,我們這里定義了一個login,我們如何得到后臺登陸回顯呢,按照TP官方方式嘗試,然后我們更換了文件夾,上面的更改為namespace app\admin\controller;
http://127.0.0.1:83/index.php/admin/index/login
這里成功了,那就再次解釋一遍,就是index.php/這個是固定的,然后/admin就是我們的admin模塊,也就是這個文件夾,控制器就是index.php,操作就是login這個方法,這樣我們就能用TP官方方法訪問了
第二種訪問方法就是
http://127.0.0.1:83/index.php?s=/admin/index/login
早期版本,TP3版本附近
有的時候還會出現index.php?s=admin&m=index&a=login
這是什么意思呢,就是三個參數分別指向模塊、控制器、操作,也就是我的admin目錄,index模塊,login操作
這樣我們就能逆推功能點,這樣可以在白盒應用中體現出來
3、請求變量-數據接受
請求對象,提交方法,助手函數等
這里使用REQUEST
這里就接受到信息了,這里定義的方式太多,可以自行選擇使用哪種方式獲取信息
4、數據庫操作-應用對象
引用DB類,基本查詢,助手函數等
public function loginin(Requset $request)
{$id = input('get.id');$data=Db::table('admin')->where('id',$id)->find();var_dump($data);
}
THINKPHP
這里就能上梭哈工具檢測,并且能一鍵利用
5、前端頁面渲染-MVC模型
引擎配置,渲染變量,模版輸出等
TP框架-寫法安全
1、自寫代碼邏輯
例子1:自己不合規的代碼寫法
自己審計代碼,看一下他的缺陷
例子2:一半框架一半自寫代碼
例子3:框架標準內置代碼寫法
官方寫法就看版本漏洞,通殺或者找邏輯,有sql注入需要有相應的代碼功能
2、框架版本安全
https://github.com/Mochazz/ThinkPHP-Vuln
例子1:寫法內置安全繞過-TP5-SQL注入
例子2:內置版本安全漏洞-TP5-代碼執行
TP框架-代審案例:
WeMall-TP5框架開發
這里拿一套源碼,先看一下thinkphp版本號,然后找歷史漏洞
這里打開發現什么都沒有,偽靜態,搭建時配置一下文件
搭建時候配置一下即可
上一下梭哈工具測試一下漏洞
拿下s