seacms審計Day 1

2020-08-12 12:45:55

入口檔案爲:index.php作用:檢測程式是否安裝data/common.inc.php爲數據庫連線資訊,若不存在,執行安裝/install/index.php爲系統安裝檔案,在安裝後會建立install_lock.txt檔案,防止重灌漏洞包含了include/common.php檔案common.php包含了include/webscan/webscan.php檔案,此檔案爲整站安全程式不太清楚這三行有什麼用,應該與表示當前目錄有關請求的資料夾內沒有任何數據包含了/include/common.func.php檔案,此檔案又包含了data/config.cache.inc.php檔案,此檔案包含了許多變數,因該是用作網頁顯示common.func.php檔案判斷了include/data/config.cache.inc.php檔案內cfgcachetyperedis調/include/common.redis.func.php調/include/common.file.func.phpfile,調/include/common.file.func.php/common.file.func.php/include/common.file.func.php/include/inc/mysql.phpcommon.file.func.phpipindex.phpforeachsqlinsertsqli.phpi.phpcfg_cachetype變數的值,如果是'redis'則呼叫/include/common.redis.func.php的內容,否則呼叫/include/common.file.func.php的內容,這裏原生的值是file,所以呼叫/include/common.file.func.php的內容,不太清楚爲什麼要這麼區分,但是/common.file.func.php因該是網站首頁的顯示部分/include/common.file.func.php包含了一個沒有內容的檔案/include/inc/mysql.phpcommon.file.func.php定義了許多陣列,有編碼,中英文,獲取使用者ip,等等index.php入口檔案包含了外部的一些檢測使用者資訊,網頁顯示,整站安全防護類的檔案,檔案本身用foreach的遍歷陣列方式檢測和註冊了外部提交的變數整個檔案並沒有外部使用者輸入的地方,所以並沒有sql注入的隱患整站功能包括電影展示,影片查詢,影片分類,使用者功能,使用者留言敏感函數回溯insert插入變數無單引號防護,可能存在sql注入,可疑地點在i.php檔案當中直接存取i.php會被攔截根據錯誤提示可知,此頁因該是判斷系統積分推廣系統的讓使用者輸入了一個數值來定義i,intval限制了整數值,但是可以用寬位元組注入來繞過同上,也可以用寬位元組注入來繞過我們輸入數值來滿足程式的條件,結果返回如上一個自訂的通過正則表達式獲取使用者ip的函數
在建立完這個函數後緊接着就將其使用,並賦值給$bip,然後便放入數據庫中進行查詢
獲取IP的方式是通過HTTP_REFERER,這個東西可以被僞造

變數無單引號保護
思路一:
通過僞造HTTP_REFERER的方式構造一個含有sql命令的語句,然後將其帶入數據庫中進行查詢
由於判斷HTTP_PEFERER的方法太過嚴謹,所以此方法作廢

存在於login.php檔案中,用於獲取使用者輸入的使用者名稱,先後 先後進行了刪除字串內所有反斜槓,過濾了XSS跨站指令碼攻擊,擷取中文字元,將字串內的所有引號前加上反斜槓

存在於login.php資料夾中,用於獲取使用者輸入的密碼,對面嗎進行md5加密,然後擷取了5到20字元,不懂爲什麼要擷取字元

這裏進行了一個針對userid的sql查詢
嘗試進行寬位元組注入:
1.語句:id=-1%df’ and 1=1#
失敗:

此提示出現在webscan檔案中,檢查webscan檔案分析過濾機制 機製
get攔截規則:
$getfilter = 「<.+javascript:window[.{1}\x|<.=(&#\d+?;?)+?>|<.(data|src)=data:text/html.>|\b(alert(|confirm(|expression(|prompt(|benchmark?|sleep?|\b(group_)?concat[\s/*]?([)]+?)|[]*?when[]*?[]+?|load_file*?()|<[a-z]+?\b[>]*?\bon([a-z]{4,})*?=|+/v(8|9)|\b(and|or)\b\s*?([()’\d]+?=[()’\d]+?|[()‘zA-Z]+?=[()‘zA-Z]+?|>|<|+?[\w]+?\s+?\bin\b\s*?|\blike\b\s+?[’])|/*.*/|<\sscript\b|\bEXEC\b|UNION.+?SELECT*(+|@{1,2}.+?|+?.+?|(|'|).*?(|’|))|UPDATE(+|@{1,2}.+?|+?.+?|(|'|).*?(|’|))SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE)@{0,2}((.+)|\s+?.+?\s+?|(|'|).*?(|’|))FROM((.+)|\s+?.+?|(|'|).*?(|’|))|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
post攔截規則:
$postfilter = "<.
=(&#\d+?;?)+?>|<.data=data:text/html.>|\b(alert(|confirm(|expression(|prompt(|benchmark*?|sleep?|\b(group_)?concat[\s/*]?([)]+?)|[]*?when[]*?[]+?|load_file*?()|<[^>]?\b(onerror|onmousemove|onload|onclick|onmouseover)\b|\b(and|or)\b\s?([()’\d]+?=[()’\d]+?|[()‘zA-Z]+?=[()‘zA-Z]+?|>|<|+?[\w]+?\s+?\bin\b\s*?|\blike\b\s+?[’])|/*.*/|<\sscript\b|\bEXEC\b|UNION.+?SELECT*(+|@{1,2}.+?|+?.+?|(|'|).*?(|’|))|UPDATE(+|@{1,2}.+?|+?.+?|(|'|).*?(|’|))SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE)((.+)|\s+?.+?\s+?|(|'|).*?(|’|))FROM((.+)|\s+?.+?|(|'|).*?(|’|))|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
cookie攔截規則:
$cookiefilter = "benchmark
?|sleep?|load_file?(|\b(and|or)\b\s*?([()’\d]+?=[()’\d]+?|[()‘zA-Z]+?=[()‘zA-Z]+?|>|<|+?[\w]+?\s+?\bin\b\s*?|\blike\b\s+?[’])|/*.*/|<\sscript\b|\bEXEC\b|UNION.+?SELECT*(+|@{1,2}.+?|+?.+?|(|'|).*?(|’|))|UPDATE(+|@{1,2}.+?|+?.+?|(|'|).*?(|’|)*)SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE)@{0,2}((.+)|\s+?.+?\s+?|(|'|).*?(|’|))FROM((.+)|\s+?.+?|(|'|).*?(|’|))|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)」;
這些東西都看不懂