<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    實戰 | 記一次授權令牌中SQL注入漏洞挖掘?

    VSole2022-07-17 07:42:21

    記一次授權令牌中SQL注入漏洞挖掘

    今天在這篇文章中,我將分享一篇關于使用授權Header(Authorization Headers token)的 SQL 注入的文章。

    Authorization Headers token的一些介紹,

    => 授權令牌由服務器生成和簽名,用于通過唯一令牌驗證用戶。

    => 登錄成功后,服務器會發送一個授權令牌,Web 開發者通常會將其存儲在瀏覽器的本地存儲或會話存儲中。

    => 現代網站使用 JWT(JSON Web 令牌)進行用戶授權。這并不意味著每個授權令牌都是 JWT。這取決于網站使用的后端和框架,

    滲透過程

    我是一個季節性的 Bug 賞金獵人。我嘗試通過google dorks搜索一些私人的bug賞金計劃,并隨機選擇了一個程序進行狩獵。

    當我從主要目標開始時,我沒有做像子域枚舉或任何 Dorking 這樣的基本偵察。

    對我來說,這是平凡的一天。我剛剛啟動了 BurpSuite并打開了目標站點。根據公司政策,我不能透露目標。

    在 Wappalyzer 插件的幫助下,我注意到目標在 PHP 上運行。

    對我來說,PHP 本質上是易受攻擊的。作為一名 Web 開發人員,我有豐富的 PHP 構建網站和修復漏洞的經驗。

    在攻擊目標時,我會在偵察過程的初始階段對目錄進行暴力破解并檢查 robots.txt 文件。

    我使用 Dirsearch 查找隱藏目錄,但沒有運氣。除了管理頁面,我沒有得到任何可疑的東西。

    我嘗試通過訪問 target/admin/ 打開管理頁面

    但是沒有成功,它會引發錯誤403 Forbidden

    我并沒有太快放棄,再次嘗試使用Dirsearch 在管理頁面內進行 Fuzz。這次活動頁面收到了200狀態碼。

    沒有任何延遲,我已經打開了頁面 www.target.com/admin/events/

    我注意到這個頁面是一個普通的登錄頁面,它有兩種登錄方式,一種用于用戶,另一種用于超級管理員

    發現SQL注入

    正如我所說,登錄頁面有兩個鏈接,一個用于用戶,另一個用于管理員,我選擇了第一個,并將我重定向到

    www.target.com/admin/events/?classic_login=true
    

    它彈出用戶名和密碼,我開始提供錯誤的憑據并觀察服務器的響應,測試了一段時間后,我提供的用戶名和密碼為1'

    幸運的是,它出現了SQL報錯。

    我試圖重現它,但它不起作用,并且登錄彈出窗口完全消失了。

    即使刷新頁面后,錯誤消息也會顯示在那里,因為我認為這可能是一些后端錯誤。

    我查看了 Burp代理歷史記錄,發現沒有發送常規的 POST 表單數據或 JSON 數據。

    我有一段時間空白,后來在隱身模式下打開了鏈接,然后出現了用于登錄的彈出窗口。再次觀察請求和響應。

    后來,我注意到帶有令牌的 Header Value Authorization。

    作為一名 Web 開發人員,我知道授權令牌是如何工作的,并且我對 PHP、MERN 堆棧和一些 Django 框架有很好的了解。我可以很容易地猜到開發人員使用的標記化

    Authorization: Basic Base64Values
    

    您可能經常在 Web 應用程序中看到此 Header。

    專業提示:在后端,在大多數情況下,Bearer 被忽略,開發人員將令牌與發行的令牌匹配。

    如果那是 JWT,那么開發人員通常會對其進行解碼,而不是驗證這就是不正確的訪問控制、帳戶接管發生的地方。

    我已將請求發送到Repeater,選擇了令牌并使用 Burp 解碼器對其進行解碼,因為我通過長度和性質猜測了加密類型。它不是 JWT,而是 1':1' 的 base64 值

    我很快想起了 Sqlmap 工具,捕獲了整個請求,并將其保存到一個文本文件中。

    并嘗試運行sqlmap,但問題出現在base64編碼。雖然 sqlmap 支持 base64 編碼,但場景是值之間有一個冒號 :。

    因為應用程序的行為如下

    它接受用戶名和密碼,并使用 base64 對值進行編碼,其中用:分隔

    雖然我擅長手動 SQL 注入利用,但有一種 base64 編碼的實時模式,并在轉發器中應用有效負載。為此,我試圖找到目標的列數。

    并將用戶名和密碼的payload:

    1' Order By 1 — -:1' Order By 1 — -
    

    Base64后 Auth的payload如下。

    Authorization: Basic MScgT3JkZXIgQnkgMS0tIC06MScgT3JkZXIgQnkgMS0tIC0=
    

    base64 編碼發送,無 SQL 錯誤,顯示常規未授權錯誤

    試圖增加這些列,但拋出錯誤。我知道只有一列并嘗試注入聯合語句。

    注入payload:

    1' Union Select 1 — -:1' Union Select 1 — -
    

    編碼后

    Authorization: Basic MScgVW5pb24gU2VsZWN0IDEtLSAtOjEnIFVuaW9uIFNlbGVjdCAxLS0gLQ==
    

    我已成功登錄管理面板并能夠修改內容

    下面是沒有打碼的POC演示

    文章來源:HACK學習呀
    sql注入base64
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    HW藍隊初級面試總結
    2022-10-12 07:00:02
    一、sql注入原理、分類、繞過原理:產生sql注入漏洞主要因為沒有對接受到的參數進行過濾、驗證和處理直接拼接到了sql語句中,然后直接執行該sql語句,這樣就會導致惡意用戶傳入一些精心構造的sql代碼,與后臺sql語句拼接后形成完整的sql語句執行,達到攻擊者的目的。
    在所有漏洞類型中,SQL 注入可是說是危害最大最受大家關注的漏洞。簡單說來,SQL 注入是通過在用戶可控參數中注入SQL語法,破壞原有SQL結構,達到編寫程序時意料之外結果的攻擊行為。還是以 ThinkJS 為例,假設我們寫了如下一個接口(實際情況肯定不會這么寫的):
    id=3';對應的sql:select * from table where id=3' 這時sql語句出錯,程序無法正常從數據庫中查詢出數據,就會拋出異常; 加and 1=1 ,URL:xxx.xxx.xxx/xxx.php?id=1' order by 3# 沒有報錯,說明存在3列爆出數據庫:?id=-1' union select 1,group_concat,3 from information_schema.schemata#爆出數據表:?id=1' and extractvalue--+(爆字段)?
    id=1' order by 3# 沒有報錯,說明存在3列。id=-1' union select 1,group_concat,3 from 數據庫名.數據表名--+拓展一些其他函數:system_user() 系統用戶名。updatexml函數:細節問題:extractvalue()基本一樣,改個關鍵字updatexml即可,與extractvalue有個很大的區別實在末尾注入加上,如:,而extractvalue函數末尾不加1(數值)?
    本文中涉及到的相關漏洞已報送廠商并得到修復,本文僅限技術研究與討論,嚴禁用于非法用途,否則產生的一切后果自行承擔。故事開始1、拿到資產清單后,發現有這樣一個站。
    0x01 %00繞過WAF輸入一個單引號頁面報錯首先閉合,這里用')閉合keywords=1') %23. order by x 被攔截,用--%0a代替空格即可直接上union select會一直卡著,沒有任何返回把空格都改為--%0a,成功響應,在 select 跟 1,2,3... 之間用兩個 --%0a 會無響應在 1 后面加上?并 url 編碼,原理是 waf 把空字節認為是結束導致了后面的語句可以繞過0x02 Base64繞WAF發現參數為 base64 編碼測試字符發現頁面報錯,使用報錯注入來出數據133 and updatexml. 這里可以使用16進制或者科學計數法0x1或1e1keywords=11'and-updatexml
    概述在學習SQL注入之前,我們應先了解什么是SQL?原理SQL注入就是當開發人員對用戶輸入數據的合法性沒有判斷或過濾不嚴時,攻擊者通過拼接惡意SQL語句誘使解釋器在未經適當授權的情況下執行意外命令或訪問數據。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类