常見的網站中間件滲透思路總結
1.apache
apache文件多后綴名解析漏洞
與其說這是一個漏洞,不如說這是一個特性,很多程序員不知道這種特性,所以會寫出有問題的代碼。
特性:多后綴名(全版本都有這個特性)
apache在解析一個文件的后綴名時,是從右往左解析后綴名的,如果右邊的后綴名不認識,就會繼續向左識別,直到識別到一個認識的后綴名,但是萬一都不認識呢?都不認識的話默認情況下是plain/text處理。那么apache是怎么知道哪個后綴名它是認識的呢?答案是認識的后綴名們都被記錄到一個叫mime.types的文件中了。這個文件呢,Windows放在conf文件夾里,linux放在/etc/mime.types(不一定在這里,需要自己找找),打開后是這樣

定義了不同的后綴名應該向瀏覽器返回什么樣的mime格式。這里要說的是有些情況下的mime.types沒有提供對php的解析方法,對php的解析規則放在另一個文件,Windows下在/conf/extra/httpd-php.conf。Linux也有這個文件在/etc/apache2/mods-enabled/php7.2.conf(或者和Windows的路徑一樣),打開后是這樣的,定義了文件名滿足什么條件(正則表達式)才會將他給php處理器處理,而且,如果你mime.types里匹配到了php后綴,但這個處理器匹配文件沒有匹配成功,他還是不會把php文件進行處理

可以試一試,確實是這樣的,apache對這個文件第一個匹配到的后綴名是jpg,所以把它當作圖片處理了,返回了圖片類型的mime頭,瀏覽器也就把這個文件當作圖片處理,于是出現了這種情況

當然,用這種多域名特性去解析php文件的話,就需要在上文提到的文件里去修改修改哦。
apache 換行繞過
2.4.0~2.4.29版本中存在一個解析漏洞,在解析PHP時,1.php\x0A將被按照PHP后綴進行解析,導致繞過一些服務器的安全策略。
apache ssi遠程命令執行漏洞(原理和ssi注入一樣)
如果服務器開啟了ssi與cgi支持,即可上傳shtml文件并在shtml文件中輸入ssi指令 ,如 ,然后再訪問這個文件即可獲得ls的結果
2.iis
關于/的php解析漏洞(iis7/7.5解析漏洞)
適用版本 iis7/7.5
前提條件:
1.php.ini里的cgi.fix_pathinfo設置為1,且結合方式是fast-cgi

2.開啟Fast-CGI運行模式
作用: 在訪問某個文件時,在路徑后加 /.php(這里的指任意字符),即可讓服務器把把該文件當作php文件解析并返回
如圖我在一個txt文件中寫入php代碼,讓后訪問它時在路徑最后加了/a.php,它就被解析為php文件了

PUT任意文件上傳漏洞
1.適用版本 iis6.0
2.前提條件:服務器開啟了webdav服務并且設置了寫入權限

同時找到訪問網站的用戶是哪個并給他讀取和寫入權

3.概述:用PUT方法上傳文件,并嘗試getshell

上傳,并且確實上傳成功,但是大多數情況下無法上傳php等腳本文件
這個時候我們就會想到用move方法來將txt文件轉化為php文件,但直接move往往是不行的,要用到iis6.0解析漏洞,把它寫成shell.php;.txt就可以了getshell了
iis6畸形解析漏洞
iis6.0環境下會把文件畸形解析: 1.在一個文件后面加;.任意后綴名:假設有個文件是a.php,我們把它改成a.php;a.txt,他還是會被解析成php文件但是因為后綴名是txt所以會繞過一些防護
2.在一個名為 *.php(如a.php)的文件夾下的所有文件都會被解析為php
3.Nginx
‘/’字符解析漏洞(和iis7/7.5漏洞利用方法一致)
url/xxx.gif/xx.php會被解析為php文件
前提條件:cgi.fix_pathinfo=1
目錄遍歷小洞

前提條件: nginx-conf 把這個選項改為on即可
目錄穿越

前提概要:要用到別名alias
作用: 當設置別名時,location后面的路徑沒有用/閉合時,就會引起訪問 url/xx../時返回的目錄是當前文件夾的上層目錄
可見返回的目錄是上層目錄
CRLF注入
前提條件與產生原因:
1.隨著業務的發展,有些網站會把http://xxx 重定向為https://xxx或http://x.com重定向為http://www.x.com,
那么這種重定向的原理在nginx上的實現方式是在location塊里加入return 302 http://$host:81$uri;之類的語句,
這里的$host,$url都是變量。$host一般為請求頭的host頭部,$url一般為請求行里的路徑部分 如 GET /url HTTP/1.1此處的/url部分. 2.http頭部里,0d(cr)和0a(lf)字符是用來分割請求頭部區域的字符。頭部的行是以一個crlf來分割的,也就是說請求頭部每個行之間都存在著一個crlf字符來分割它們,讓他們成為多個獨立的行。頭部與body之間有兩個crlf來分割
作用:當某臺nginx設置了形如return 302 http://$host:80$uri; 這種配置時,url是我們完全可控的,所以可以在url中人為構造crlf字符來實現分行,從而在響應頭中注入我們想要得到的響應頭部。

Nginx 文件名邏輯漏洞(CVE-2013-4547)
Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7
url/xxxxx.gif%20 的文件
被 url/xxxxx.gif%20\0x00.php (\0x00須在burp里的hex里改)
需開啟fastcgi

然后發包請求這個文件,并且在請求時做點手腳

4.WebLogic
弱口令
User ID system Password password Level Administrator User ID weblogic Password weblogic Level Administrator User ID weblogic Password weblogic User ID admin Password security User ID joe Password password User ID mary Password password User ID system Password security User ID wlcsystem Password wlcsystem User ID wlpisystem Password wlpisystem
任意文件讀取基礎上的后臺密碼破解
假設我們能前臺任意文件讀取,但是后臺的賬戶密碼是加密的.如何破解
weblogic新版本用的是AES加密,老版本用的是3DES加密
都是對稱加密,有密鑰就可解

假設前臺可以任意文件讀取,那么我們只要用到用戶的密文和加密的密鑰即可破解。這兩個文件在base_domain下, 為./security/SerializedSystemIni.dat和config/config.xml
這里值得一提的是,.dat文件是二進制文件,建議burp打開不然容易亂碼

把二進制信息copy to file保存下來.

獲取config.xml

xml文檔里這才是管理員賬戶
開始解密,這里使用的是 https://github.com/TideSec/Decrypt_Weblogic_Password 中的tools5

解密成功。登錄就完事了
后臺傳木馬提權
后臺傳jsp木馬的war包就行了
怎么生成war包:
jar cvf shell.war 木馬源文件
部署-》安裝-》上載文件-》選擇文件選擇war包-》一直下一步然后完成

訪問war包目錄下的木馬文件即可

馬子是一句話馬子 <%Runtime.getRuntime.exec(request.getParameter(“cmd”));%>
命令建議用這個網站編碼一下,不然有可能不會執行 http://www.jackson-t.ca/runtime-exec-payloads.html
weblogic uudi組件造成的端口探測
若weblogic加載了uudi組件,那么在 /uddiexplorer/SearchPublicRegistries.jsp 會存在端口探測問題
對該jsp傳參
?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001
我們通過改變operator的端口發包,看頁面變化即可端口探測

端口不存在,就會有could not connect over HTTP to server:

存在就有404 error code (Not Found). Please ensure that your URL is correct,

Weblogic 任意文件上傳漏洞(CVE-2018-2894)
WebLogic管理端未授權的兩個頁面存在任意上傳getshell漏洞,可直接獲取權限。兩個頁面分別為/ws_utc/begin.do,/ws_utc/config.do
影響版本 Oracle WebLogic Server,版本10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3。
前提條件:管理員在后臺 ->base_domain->配置->一般信息->高級,把這個勾選了

開啟后我們來到 http://ip:port/ws_utc/config.do ,把這個改為
路徑 /user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css

然后點安全,再點添加,把我們的jsp馬傳上去


抓包,獲取該木馬的時間戳

訪問
http://123.57.137.109:7001/ws_utc/css/config/keystore/時間戳_文件名

成功訪問我的馬兒
修復: 設置Config.do、begin.do頁面登錄授權后訪問 ,升級,加waf
轉自:HACK學習呀