SQL注入繞過的技巧總結(jié)
前言
sql注入在很早很早以前是很常見的一個(gè)漏洞。后來(lái)隨著安全水平的提高,sql注入已經(jīng)很少能夠看到了。但是就在今天,還有很多網(wǎng)站帶著sql注入漏洞在運(yùn)行。稍微有點(diǎn)安全意識(shí)的朋友就應(yīng)該懂得要做一下sql注入過濾。
SQL注入的繞過技巧有很多,具體的繞過技巧需要看具體的環(huán)境,而且很多的繞過方法需要有一個(gè)實(shí)際的環(huán)境,最好是你在滲透測(cè)試的過程中遇到的環(huán)境,否則如果僅僅是自己憑空想,那顯然是不靠譜的。這篇文章就是總結(jié)我在遇到的CTF題目或者是滲透環(huán)境的過程中,所使用到的sql注入的繞過技巧,這篇文章隨著自己的見識(shí)和能力不斷的提升,所總結(jié)的方法也會(huì)變多。
一、引號(hào)繞過
會(huì)使用到引號(hào)的地方是在于最后的where子句中。如下面的一條sql語(yǔ)句,這條語(yǔ)句就是一個(gè)簡(jiǎn)單的用來(lái)查選得到users表中所有字段的一條語(yǔ)句。
select column_name from information_schema.tables where table_name="users"
這個(gè)時(shí)候如果引號(hào)被過濾了,那么上面的where子句就無(wú)法使用了。那么遇到這樣的問題就要使用十六進(jìn)制來(lái)處理這個(gè)問題了。
users的十六進(jìn)制的字符串是7573657273。那么最后的sql語(yǔ)句就變?yōu)榱耍?/p>
select column_name from information_schema.tables where table_name=0x7573657273
小結(jié):使用十六進(jìn)制可以繞過引號(hào)
二、逗號(hào)繞過
在使用盲注的時(shí)候,需要使用到substr() ,mid() ,limit。這些子句方法都需要使用到逗號(hào)。對(duì)于substr()和mid()這兩個(gè)方法可以使用from to的方式來(lái)解決。
select substr(database(0 from 1 for 1); select mid(database(0 from 1 for 1);
對(duì)于limit可以使用offset來(lái)繞過。
select * from news limit 0,1 # 等價(jià)于下面這條SQL語(yǔ)句 select * from news limit 1 offset 0
小結(jié):使用from可以繞過逗號(hào)
三、比較符(<,>)繞過
同樣是在使用盲注的時(shí)候,在使用二分查找的時(shí)候需要使用到比較操作符來(lái)進(jìn)行查找。如果無(wú)法使用比較操作符,那么就需要使用到greatest來(lái)進(jìn)行繞過了。
最常見的一個(gè)盲注的sql語(yǔ)句。
select * from users where id=1 and ascii(substr(database(),0,1))>64
此時(shí)如果比較操作符被過濾,上面的盲注語(yǔ)句則無(wú)法使用,那么就可以使用greatest來(lái)代替比較操作符了。greatest(n1,n2,n3,等)函數(shù)返回輸入?yún)?shù)(n1,n2,n3,等)的最大值。
那么上面的這條sql語(yǔ)句可以使用greatest變?yōu)槿缦碌淖泳?
select * from users where id=1 and greatest(ascii(substr(database(),0,1)),64)=64
小結(jié):使用greatest()繞過比較操作符。
總結(jié)
好了,以上就是關(guān)于SQL注入繞過技巧的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
梧桐數(shù)據(jù)庫(kù)與GBase日期函數(shù)比較代碼示例
這篇文章主要介紹了梧桐數(shù)據(jù)庫(kù)和Gbase數(shù)據(jù)庫(kù)的日期函數(shù)使用方法,包括日期加減、時(shí)間戳加減和其他日期函數(shù),雖然兩個(gè)數(shù)據(jù)庫(kù)的函數(shù)名不同,但功能相似,為開發(fā)提供了便利,需要的朋友可以參考下2025-02-02
問個(gè)高難度的復(fù)雜查詢(在一個(gè)時(shí)間段內(nèi)的間隔查詢)
問個(gè)高難度的復(fù)雜查詢(在一個(gè)時(shí)間段內(nèi)的間隔查詢)...2007-04-04
centos虛擬機(jī)部署opengauss數(shù)據(jù)庫(kù)詳細(xì)圖文教程
這篇文章主要給大家介紹了關(guān)于centos虛擬機(jī)部署opengauss數(shù)據(jù)庫(kù)的相關(guān)資料,文章詳細(xì)介紹了在CentOS上安裝和配置openGauss數(shù)據(jù)庫(kù)的過程,包括安裝步驟、環(huán)境配置、權(quán)限設(shè)置、預(yù)安裝和正式安裝等,需要的朋友可以參考下2024-12-12
Linux下開啟和配置OpenGauss數(shù)據(jù)庫(kù)遠(yuǎn)程連接的教程詳解
openGauss是一款開源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),采用木蘭寬松許可證v2發(fā)行,本文主要為大家介紹了Linux系統(tǒng)中如何開啟和配置OpenGauss數(shù)據(jù)庫(kù)的遠(yuǎn)程連接,需要的小伙伴可以參考下2023-12-12
淺談一下數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展與組成
這篇文章主要介紹了淺談一下數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展與組成,數(shù)據(jù)庫(kù)系統(tǒng),指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng),一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員(DBA)構(gòu)成,本文就數(shù)據(jù)庫(kù)的發(fā)展展開詳細(xì)講解2023-07-07
大數(shù)據(jù)開發(fā)phoenix連接hbase流程詳解
HBase是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫(kù),該技術(shù)來(lái)源于?Fay?Chang?所撰寫的Google論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(File?System)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類似于Bigtable的能力2022-11-11
SQL語(yǔ)句實(shí)現(xiàn)刪除重復(fù)記錄并只保留一條
這篇文章主要介紹了SQL語(yǔ)句實(shí)現(xiàn)刪除重復(fù)記錄并只保留一條,本文直接給出實(shí)現(xiàn)代碼,并給出多種查詢重復(fù)記錄的方法,需要的朋友可以參考下2015-06-06
一篇文章教會(huì)你使用gs_restore導(dǎo)入數(shù)據(jù)
gs_restore是GaussDB(DWS)提供的針對(duì)gs_dump導(dǎo)出數(shù)據(jù)的導(dǎo)入工具,下面這篇文章主要給大家介紹了關(guān)于如何通過一篇文章教會(huì)你使用gs_restore導(dǎo)入數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-09-09

