作者:0r@nge 本來對(duì)堆疊注入沒啥了解,,這次正巧碰到mssql的堆疊注入,正好加強(qiáng)一下對(duì)堆疊注入的理解,。 堆疊注入因?yàn)樵趕ql查詢語句中,, 分號(hào)“,;”代表查詢語句的結(jié)束,。 所以在執(zhí)行sql語句結(jié)尾分號(hào)的后面,再加一條sql語句,,就造成了堆疊注入,。 這種情況很像聯(lián)合查詢,他們的區(qū)別就在于聯(lián)合查詢執(zhí)行的語句是有限的,,只能用來執(zhí)行查詢語句,,而堆疊注入可以執(zhí)行任意語句。 不會(huì)審計(jì)php代碼,,這里就不貼sql語句的源碼了,。 下面是滲透流程
前臺(tái)的頁面 首先懟一波弱口令 其實(shí)有幾個(gè)是可以弱口令直接進(jìn)后臺(tái)的,但是后臺(tái)沒有任何的getshell點(diǎn) 那就只能在后臺(tái)的登錄窗口試一試有沒有注入了,,抓包測試一下 發(fā)現(xiàn)有注入點(diǎn),,直接上sqlmap一把梭
ping 下dnslog 看看是否可以直接執(zhí)行命令
再換個(gè)思路,嘗試用xp_cmdshell
嘗試直接注入cs的powershell上線
甜土豆提權(quán)到system 連xp_cmdshell命令都沒有禁用,,想來也不會(huì)有什么殺軟,。
也沒有內(nèi)網(wǎng),收工,。 總結(jié)這里這么順利是因?yàn)闆]有殺軟,,命令也都沒有攔截禁用, 下面說一下如果xp_cmdshell如果被禁用該怎么辦。 1. sp_configure函數(shù)開啟sp_configure函數(shù)的命令
執(zhí)行系統(tǒng)命令 注意沒有回顯 下面的命令添加一個(gè)影子用戶并加入管理員組
還有其他的函數(shù),,這里就不一一列舉了,。 很多情況上面兩個(gè)函數(shù)并不能執(zhí)行(存在殺軟),mssql數(shù)據(jù)庫可以用一下兩個(gè)方法2.log備份寫shell前提條件:1.數(shù)據(jù)庫存在注入 2.用戶具有讀寫權(quán)限,,一般至少DBO權(quán)限 3.有網(wǎng)站的具體路徑 4.站庫不分離 而且這種方法備份出的馬子體積很小,,備份成功的可能性很大。 步驟:1.修改數(shù)據(jù)庫為還原模式(恢復(fù)模式):
3.建表和字段
3.備份數(shù)據(jù)庫
4.往表中寫入一句話
5.利用log備份到web的物理路徑
6.刪除表
差異備份寫shell概念:備份自上一次完全備份之后有變化的數(shù)據(jù),。差異備份過程中,,只備份有標(biāo)記的那些選中的文件和文件夾。它不清除標(biāo)記,,也即備份后不標(biāo)記為已備份文件,。換言之,不清除存檔屬性,。用人話說就是:第二次備份的時(shí)候,,與上一次完全備份的時(shí)候作對(duì)比,把不同的內(nèi)容備份下來,,所以只要插入我們的一句話木馬,,再備份一下,一句話就會(huì)被寫到數(shù)據(jù)庫中,。 條件:
1.備份數(shù)據(jù)庫
2.創(chuàng)建表格
3.寫入webshell
4.進(jìn)行差異備份
5.刪除表
這些都是理論,,實(shí)戰(zhàn)中可能被各種過濾,還需要修改payload進(jìn)行具體繞過,。
|
|