本文由“東塔網(wǎng)絡(luò)安全學(xué)院”總結(jié)歸納
靶場介紹
今天,給大家介紹一下“東塔攻防世界”其中的一個靶場:“字符型注入類型5”。
一、實(shí)驗(yàn)介紹
1.SQL注入介紹
SQL注入,SQL injection。何為 SQL,英文:Structured Query Language,叫做結(jié)構(gòu)化查詢語言。常見的結(jié)構(gòu)化數(shù)據(jù)庫有MySQL,MSSQL ,Oracle以及Postgresql。SQL注入即是指web應(yīng)用程序對用戶輸入數(shù)據(jù)的合法性沒有判斷或過濾不嚴(yán),攻擊者可以在web應(yīng)用程序中事先定義好的查詢語句的結(jié)尾上添加額外的SQL語句,在管理員不知情的情況下實(shí)現(xiàn)非法操作,以此來實(shí)現(xiàn)欺騙數(shù)據(jù)庫服務(wù)器執(zhí)行非授權(quán)的任意查詢等操作。
2. Information_schema數(shù)據(jù)庫基本表說明:
1)schemata表:提供了當(dāng)前mysql實(shí)例中所有的數(shù)據(jù)庫信息,show databases的結(jié)果就是從該表得出;
2)tables表:提供了關(guān)于數(shù)據(jù)庫中的所有表的信息,即表屬于哪個schema,表的創(chuàng)建時間、表的類型等,show tables from schemaName的結(jié)果就是從該表得出;
3)columns表:提供表中所有列信息,即表明了表中所有列及每列的信息,show columns from schemaName.tableName的結(jié)果就是從該表得出。
3.字符型注入:
在參數(shù)后面加引號來判斷原有的引號是否失衡,如果有多余引號則為字符型
二、實(shí)驗(yàn)?zāi)康?/p>
1.深入理解sql注入的概念及原理
2.掌握字符型注入的原理
三、實(shí)驗(yàn)步驟
1.打開實(shí)驗(yàn)地址,查看實(shí)驗(yàn)環(huán)境,根據(jù)實(shí)驗(yàn)要求進(jìn)行相應(yīng)的操作
2.按照判斷注入點(diǎn)、拼接sql函數(shù)來判斷執(zhí)行語句的對錯,并獲取數(shù)據(jù)庫名、表名、字段名、字段內(nèi)容等信息
四、防御方式
1.對用戶的輸入進(jìn)行校驗(yàn),可以通過正則表達(dá)式,或限制長度,對單引號和雙”-“進(jìn)行轉(zhuǎn)換等
2.過濾掉關(guān)鍵字,比如select等,對特殊字符進(jìn)行實(shí)體編碼
3.使用預(yù)編譯功能
4.禁用相關(guān)函數(shù)