從0開始學SQL注入(超詳細)

2021-10-10 20:25:15 字數 2065 閱讀 2344

終於是吧cracer的滲透教程看完了,

也終於是有點時間來整理這些凌亂的筆記了,

送給萌新的幾句話:

sql注入對於想學安全方面的人來說算是乙個很基礎的知識,

所以不要以為學完了sql注入自己就是大神了,路還遠著呢。

學習網路安全方面,實操很重要!很重要!很重要!

所以這方面的學習一定要以理論和實操相結合的方式,這樣你才會真正有所收穫和成長。

sql注入方面的實操

線上可以去ctfhub,墨者,或者一些免費的線上靶場練練手(這裡不提供了,自己勤快點)

線下可以自行搭建實驗靶場,然後找諸如dvwa,sqlilabs,等等環境(多動手很有用的)

怎麼搭靶場可以參考我前面寫的一篇文章

2.判斷是否存在三種注入漏洞

進入網頁裡請求的資料要進入到資料庫進行查詢,如果查詢語句不做限制就極有可能洩露資料庫的資料

按查詢的型別分類:

按http的提交方式可以分為:

按效果可以分為:

1.首先判斷是否有注入(例如利用1=1,1=2)

2.判斷注入型別(例如加上『』看是否報錯)

3.判斷資料庫型別(構造不同的查詢特徵語句)

4.這一步眾說紛紜,可以開始注入,也可先確定資料庫許可權再開始

5.查資料庫的庫名,表名,列名以及相應的資料

目前主流的資料庫有三種,mysql,ms sql servel,oracle(access暫且不提)

所以簡單說說三種資料庫的語句區別

(初學者也只能簡單學習,想學好sql注入這三種資料庫還是要好好研究的)

注意1前面和最後的那個b後面沒有』這個符號,因為要構成sql注入語句(設定成了字元型sql注入)

之後的注入就以mysql注入為例

(1)數字型:

例如:select * from 表名 where id=1

2.條件構造:

如果存在注入則可以構造select * from 表名 where id=1 and 1=1 (藍色代表你的輸入)

解析:1=1代表永真,所以代表的意義為:

1=1 and 這個頁面是正確的

因此你訪問頁面是有效的,所以就成功了

(2)字元型:

例如:原理:基本同數字型

1.資料庫原型:

select * from 表名 where user=「admin」(資料庫中可為單引號可為雙引號)

2.條件構造:

如果存在注入則可以構造select * from 表名 where id=『admin『 and 1=1 『 (藍色代表你的輸入,注意最左邊那個單引號不是你的輸入)

或者這麼構造:select * from 表名 where id=『admin『 and 1=1 『–+ (藍色代表你的輸入)(其中–+在sql中表注釋,其他的mysql注釋還有/**/,#)

3.q&a

q:有人可能會問了,為什麼標紅的沒有單引號呢?

a:因為是把admin賦值給user,然後user代入到mysql查詢語句中,單引號只存在於mysql,故在網頁上不顯示

q:這個單引號怎麼看不懂?

a: 看下圖

(3) 搜尋型:

例如:例如:

原理:都差不多

1.資料庫原型:

select * from 表名 where 字段 like 『%***%』

2.條件構造:

如果存在注入則可以構造select * from 表名 where id=『%***%『 and 『%1%』=』%1 %』(藍色代表你的輸入)

因為搜尋型比較特殊,所以可以構造乙個』%1%』=』%1%'的語句構成永真條件,

閉合的話根據資料庫原型進行考慮即可

(1)數字型

(2)字元型

(3)搜尋型

待續…

從0開始學spark

參考 local 模式 即單機模式,這種安裝加壓即可,具體安裝方法穿插在 standalone 模式 standalone 模式 即搭建 spark 集群,但不與其他框架整合,如 yarn,此時 spark 執行在集群中 基於 yarn 的 spark 集群部署 yarn 集群 spark 集群,此...

從0開始學架構 推薦

程式設計師的成長繞不開架構設計,有時架構設計就像鴻溝一樣擋在程式設計師晉公升之路上,只要跨過去就可以海闊天空。但不少技術能力很強的程式設計師依然不能完全掌握架構設計,這與架構設計的思維方式和訓練機制與寫 有很大差異有關,加之人們對架構設計存在很多誤區,缺乏一套行之有效的架構設計方 就可能導致在實踐過...

從0開始學swift 基礎

可以同時定義多個變數並賦予其型別注釋 let a,b,c int double 64位浮點數,要求至少有15位數字,精度很高。float 32位浮點數,要求最少有6位數字,精度要求不高時使用。注 當你沒有給浮點數標明型別時,swift總是會選擇double 二進位制 0b 八進位制 0o 十六進製制...