利用.user.ini 進(jìn)行解析文件。
不管是nginx/apache/IIS,只要是以fastcgi運(yùn)行的php都可以;
什么是.user.ini 先看下官方的廢話。
簡(jiǎn)單來講,第一段話,反過來就是.htaccess 在特定的情況下和.user.ini作用相同。而.htaccess 利用相信大家都不陌生。
第二句話就是字面意思了。簡(jiǎn)單講就是后面利用的時(shí)候,你這個(gè).user.ini在任何目錄下都無所謂,php會(huì)去找到它的。.user.ini就相當(dāng)于php.ini的意思了。
第三句就是條件了。
最后一句簡(jiǎn)單講 .user.ini 是動(dòng)態(tài)讀取的,不需要去重啟使配置生效,默認(rèn)是300秒 重新加載INI文件。
那么我們就可以到php.ini中尋找 具備PHP_INI_PERDIR和PHP_INI_USER 模式的INI設(shè)置了。
其中有兩個(gè)設(shè)置比較有意思,寫網(wǎng)站的朋友或許有時(shí)候常常接觸到。
這里就不去看官方的描述了。意思簡(jiǎn)單清晰明了。類似于require();
我們?nèi)绻?user.ini中設(shè)置 比如第一個(gè) auto_prepend_file
在.user.ini 中添加如下一串代碼
auto_prepend_file=shell
然后在文件shell中寫入php代碼
當(dāng)前目錄下我寫了一個(gè)php的首頁(yè)文件。內(nèi)容如下
按照原理,shell文件的內(nèi)容應(yīng)該會(huì)被包含在 hello world 上面。
訪問一下, 執(zhí)行成功。
如果.user.ini中 寫的是
auto_append_file =shell
那么執(zhí)行的代碼就在下面。
最后附上我的測(cè)試環(huán)境。其中php 從5.3.29 到7.3.9 都可以。Nginx 的話是1.15版本
總結(jié):通過上傳自定義文件.user.ini
使php去讀取其內(nèi)容,將指定文件包含在一個(gè)正常的php文件中,進(jìn)行解析,從而達(dá)到getshell的結(jié)果。
該方法用在文件上傳,.user.ini可以上傳成功,且在上傳目錄下存在一個(gè)正常的php文件即可。
可以在php文件無法正常上傳,不存在文件包含漏洞,圖片馬上傳之后無法解析的情況下進(jìn)行。
且在上傳目錄下存在一個(gè)正常的php文件即可。
可以在php文件無法正常上傳,不存在文件包含漏洞,圖片馬上傳之后無法解析的情況下進(jìn)行。
審核編輯:湯梓紅
-
文件
+關(guān)注
關(guān)注
1文章
578瀏覽量
25214 -
User
+關(guān)注
關(guān)注
1文章
27瀏覽量
11020
原文標(biāo)題:文件上傳另類GETshell方法
文章出處:【微信號(hào):菜鳥學(xué)安全,微信公眾號(hào):菜鳥學(xué)安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
動(dòng)網(wǎng)論壇大文件上傳不了的解決方法
protel 的特殊庫(kù)與另類庫(kù)...
基于Iframe內(nèi)聯(lián)框架的異步文件上傳與刪除

springMVC后臺(tái)接受前端上傳的文件及下載文件
如何在java上傳和下載文件
java Web如何實(shí)現(xiàn)文件的上傳與下載

如何把鴻蒙的文件上傳到python服務(wù)器端

評(píng)論