久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

一文掌握sql注入

 zZ華 2023-07-12 發(fā)布于廣東

什么是sql注入漏洞

概念:客戶端在接受用戶輸入的參數(shù)并拼接到sql語(yǔ)句中提交給服務(wù)端

去數(shù)據(jù)庫(kù)中檢索相應(yīng)的結(jié)果,,但是由于用戶輸入的參數(shù)是惡意查詢的參數(shù),,所以導(dǎo)致sql語(yǔ)句有惡意查詢導(dǎo)致sql注入漏洞。

sql注入型

1,、數(shù)字型(無(wú)符號(hào)干擾)

select * from news where id=$id;

2,、字符型(有符號(hào)干擾)

select * from news where id='$id';

3、搜索型(有多符號(hào)干擾)

select * from news where id like '%$id%'

4,、框架型(有各種符號(hào)干擾)

select * from news where id=('$id');

select * from news where (id='$id');

判斷有沒(méi)有注入點(diǎn)

1.注入點(diǎn)判斷方法:   1.1.單引號(hào)判斷法---經(jīng)典方法

如果頁(yè)面返回錯(cuò)誤,,則存在,字符型、整型都可判斷,,具體操作在參數(shù)的后面加上'就可,。                1.2.構(gòu)造造and 1=1以及and 1=2,,用于數(shù)字型注入點(diǎn)。   

1.3.構(gòu)造and '1' ='1'以及and '1' ='2',,用于字符型注入點(diǎn),。

2.判斷注入點(diǎn)是字符型還是數(shù)字:構(gòu)造payload為:id=1 order by 9999 --+      如果正確返回頁(yè)面,則為字符型,,否則,,為數(shù)字型。

要掌握的sql基礎(chǔ)

1.MYSQL5.0以上版本:自帶的數(shù)據(jù)庫(kù)名information_schema,,遇見的數(shù)據(jù)庫(kù)基本都是5.0以上,。

2.各對(duì)應(yīng)名:

information_schema:存儲(chǔ)數(shù)據(jù)庫(kù)下的數(shù)據(jù)庫(kù)名及表名,列名信息的數(shù)據(jù)庫(kù)

information_schema.schemata:記錄數(shù)據(jù)庫(kù)名信息的表

information_schema.tables:記錄表名信息的表

information_schema.columns:記錄列名信息表

schema_name:information_schema.schemata記錄數(shù)據(jù)庫(kù)名信息的列名值

table_schema:information_schema.tables記錄數(shù)據(jù)庫(kù)名的列名值

table_name:information_schema.tables記錄表名的列名值

column_name:information_schema.columns記錄列名的列名值

3.獲取相關(guān)數(shù)據(jù):

3.1,、數(shù)據(jù)庫(kù)版本-看是否符合information_schema查詢-version()

3.2,、數(shù)據(jù)庫(kù)用戶-看是否符合ROOT型注入攻擊-user()

3.3、當(dāng)前操作系統(tǒng)-看是否支持大小寫或文件路徑選擇-@@version_compile_os

3.4,、數(shù)據(jù)庫(kù)名字-為后期猜解指定數(shù)據(jù)庫(kù)下的表,,列做準(zhǔn)備-database()

4.小細(xì)節(jié):查詢的結(jié)果很多,需要全部顯示加上group_concat(),在末尾加上limit 0,1顯示第一條數(shù)據(jù),,limit 0,2 顯示第二條數(shù)據(jù),。后面的數(shù)據(jù)代表顯示多少行從第一個(gè)數(shù)字后面開始不包括第一個(gè)數(shù)字的范圍。

sql注入點(diǎn)會(huì)發(fā)在那些參數(shù)里面

1.sql注入漏洞要發(fā)生的前提是要有數(shù)據(jù)與數(shù)據(jù)庫(kù)進(jìn)行查詢,,所以在對(duì)網(wǎng)站測(cè)試的不僅僅在id參數(shù)等進(jìn)行測(cè)試,,比如User-Agent字段,如果每一個(gè)客戶端在請(qǐng)求網(wǎng)站時(shí)服務(wù)器都記錄了此字段并保存到數(shù)據(jù)庫(kù)中,,這個(gè)過(guò)程與數(shù)據(jù)庫(kù)有著交互,,那么也有可能存在sql注入,數(shù)據(jù)包請(qǐng)求頭任何參數(shù)都有可能成為sql注入的點(diǎn),,列舉幾個(gè)參數(shù),。

User-Agent:

使得服務(wù)器能夠識(shí)別客戶使用的操作系統(tǒng),游覽器版本等.(很多數(shù)據(jù)量大的網(wǎng)站中會(huì)記錄客戶使用的操作系統(tǒng)或+

瀏覽器版本等存入數(shù)據(jù)庫(kù)中)

Cookie:

網(wǎng)站為了辨別用戶身份,、進(jìn)行session跟蹤而儲(chǔ)存在用戶本地終端上的數(shù)據(jù)

X-Forwarded-For:簡(jiǎn)稱XFF頭,,它代表客戶端,也就是HTTP的請(qǐng)求端真實(shí)的IP,(通常一些網(wǎng)站的防注入功能會(huì)記錄請(qǐng)求端真實(shí)IP地址并寫入數(shù)據(jù)庫(kù)or某文件[通過(guò)修改XXF頭可以實(shí)現(xiàn)偽造IP]).

Rerferer:瀏覽器向 WEB 服務(wù)器表明自己是從哪個(gè)頁(yè)面鏈接過(guò)來(lái)的.

Host:客戶端指定自己想訪問(wèn)的WEB服務(wù)器的域名/IP 地址和端口號(hào)

在拿到一個(gè)網(wǎng)站的時(shí)候判斷其功能點(diǎn),,比如一個(gè)網(wǎng)站你發(fā)現(xiàn)判定你的ip來(lái)讓你可不可以登入,,說(shuō)明在數(shù)據(jù)庫(kù)存儲(chǔ)了ip進(jìn)行比對(duì),與數(shù)據(jù)庫(kù)有著交互,,這個(gè)時(shí)候可以嘗試進(jìn)行xff注入,。其他點(diǎn)也可以像這樣去判斷。

盲注

盲注:就是在注入過(guò)程中,,獲取的數(shù)據(jù)不能回顯至前端頁(yè)面,。我們需要利用一些方法進(jìn)行判斷或者嘗試,,這個(gè)過(guò)程稱之為盲注。

1,、基于布爾的SQL盲注-邏輯判斷

regexp,like,ascii,left,ord,mid

2,、基于時(shí)間的SQL盲注-延時(shí)判斷

if,sleep

3、基于報(bào)錯(cuò)的SQL盲注-報(bào)錯(cuò)回顯

floor,,updatexml,,extractvalue

延遲:

and sleep(1);

and if(1>2,sleep(1),0);

and if(1<2,sleep(1),0);

布爾:

and length(database())=7;

and left(database(),1)='p';

and left(database(),2)='pi';

and substr(database(),1,1)='p';

and substr(database(),2,1)='i';

and ord(left(database(),1))=112;

報(bào)錯(cuò):

and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)

and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));

二次注入

二次注入:是指已存儲(chǔ)(數(shù)據(jù)庫(kù)、文件)的用戶輸入被讀取后再次進(jìn)入到 SQL 查詢語(yǔ)句中導(dǎo)致的注入,。

二次注入主要分為兩步

第一步:插入惡意數(shù)據(jù)

第一次進(jìn)行數(shù)據(jù)庫(kù)插入數(shù)據(jù)的時(shí)候,,僅僅對(duì)其中的特殊字符進(jìn)行了轉(zhuǎn)義,在寫入數(shù)據(jù)庫(kù)的時(shí)候還是保留了原來(lái)的數(shù)據(jù),,但是數(shù)據(jù)本身就包含惡意內(nèi)容

第二部:引用惡意數(shù)據(jù)

在將數(shù)據(jù)存入到了數(shù)據(jù)庫(kù)中之后,,開發(fā)者就認(rèn)為數(shù)據(jù)是可信的,在下一次需要進(jìn)行查詢的時(shí)候,,直接從數(shù)據(jù)庫(kù)中取出了惡意數(shù)據(jù),,沒(méi)有進(jìn)行進(jìn)一步的檢驗(yàn)和處理,就會(huì)造成二次注入

堆疊注入

堆疊注入:在SQL中,,分號(hào)(;)是用來(lái)表示一條sql語(yǔ)句的結(jié)束,。試想一下,我們?cè)诮Y(jié)束一個(gè)sql語(yǔ)句后繼續(xù)構(gòu)造下一條語(yǔ)句,,會(huì)不會(huì)一起執(zhí)行,? 因此這個(gè)想法也就造就了堆疊注入。

前提:

有注入點(diǎn):即存在sql注入漏洞

未過(guò)濾:即未對(duì)';'號(hào)進(jìn)行過(guò)濾

未禁用:即未禁止執(zhí)行多條sql語(yǔ)句

(基本后續(xù)都是用工具進(jìn)行掃,,此步驟就不詳細(xì)寫)

如何防護(hù)sql注入

1,、對(duì)用戶進(jìn)行分級(jí)管理,嚴(yán)格控制用戶的權(quán)限,;2,、在書寫SQL語(yǔ)言時(shí),禁止將變量直接寫入到SQL語(yǔ)句,,必須通過(guò)設(shè)置相應(yīng)的參數(shù)來(lái)傳遞相關(guān)的變量,;

3、在具體檢查輸入或提交的變量時(shí),,對(duì)于單引號(hào)、雙引號(hào),、冒號(hào)等字符進(jìn)行轉(zhuǎn)換或者過(guò)濾,;

4、使用安全參數(shù),;

5,、通過(guò)專業(yè)的掃描工具,,可以及時(shí)的掃描到系統(tǒng)存在的相應(yīng)漏洞;

6,、多層驗(yàn)證,;

7、數(shù)據(jù)庫(kù)信息加密,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多