首先這里需要搭建一個cms的平臺得到:

利用D盾進行漏洞掃描得到:

5級的eval后門漏洞
可以看到這里有一個5級的eval后門漏洞,我們查看檔案得到原始碼:

這是一句話后門,我們利用一下這個后門得到:

這里能cat flag
修補增加過濾或者洗掉漏洞
2級的fwrite審計:
利用seay工具進行代碼審計:
原始碼:

可以發現這是一個日志記錄,但是它把記錄的日志都寫入到了
/var/www/html/log.php檔案,這就造成檔案寫入漏洞
我們利用這個log1.php用get的方式寫一個<?php phpinfo();?>
測驗一下漏洞:

然后我們訪問log.php文夾得到:

發現執行了phpinfo();
所以我們可以利用這個檔案寫入,去寫入一句話木馬
修復:
1、可以把log.php改成log.txt
2、增加危險字符過濾
2級漏洞eval(get_defined_vars()[’_GET’][‘cmd’]);
查看原始碼得到:
get_defined_vars()此函式回傳一個包含所有已定義變數串列的多維陣列,這些變數包括環境變數、服務器變數和用戶定義的變數,
所有會獲取所有的get方法,所有直接cmd執行命令:

修復:
1、進行危險字符過濾
2、把后門洗掉
在利用seay進行代碼審計:
首先我們分析一下首頁,index.php
:

發現包含了很多檔案,這里有個/common/function.php檔案
我們去訪問這個檔案得到:

可以看到這里把c作為一個物件,a作為一個方法進行調研
在index.php中可以看到,如果不給c傳值會賦值為User
所有c的物件為User.php檔案
所有看向User.php檔案

我可以看到User這個類功還是挺多的,我們看向Login方法

sql注入
發現這里沒有任何的過濾,所有登陸界面存在sql注入:

登陸得到:

修復:
進行危險字符過濾
命令執行
我在User.php看到:

看到這里有一個命令執行
我們在index.php哪里進行get請求
a=User&c=ping

然后在進行host請求:

發現執行了命令
利用命令:
127.0.0.1|cat /flag.txt

修復漏洞;
進行危險字符過濾
反序列化
在seay中全域查詢反序列化函式得到:
反序列化漏洞原始碼:

payload:
class home{
private $method;
private $args;
}
$a = new home("ping",array('127.0.0.1|cat /flag.txt'));
$b = serialize($a);
echo base64_encode($b);
得到:
Tzo0OiJob21lIjoyOntzOjEyOiIAaG9tZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGhvbWUAYXJncyI7YToxOntpOjA7czoyNDoiMTI3LjAuMC4xfGNhdCAJL2ZsYWcudHh0Ijt9fQ==

得到flag,
漏洞修補:
過濾危險字符
本人比較菜漏洞審計就到這里,不妥的地方大佬勿噴
其它漏洞我也審計不出來直接上waf通防范,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/387773.html
標籤:其他
