2023-11-25 分類: 網(wǎng)站建設(shè)
起源
如果您查看過慢查詢?nèi)罩净蚓W(wǎng)站日志,您可能會(huì)看到以下語句:
col.id = ((0)from(((90)))v)/*'+((0)from(((90)) )v)+'"+((0)from(((90)))v)+"*/;
可能是你的網(wǎng)站開通后大約一個(gè)小時(shí)內(nèi)收到的日志,也可能是你訪問web服務(wù)器時(shí)看到的日志()。如果你在慢查詢?nèi)罩净蛘呷罩局锌吹?,并且跳轉(zhuǎn)請(qǐng)求返回的狀態(tài)碼是200而不是404,那么恭喜你,你可能中標(biāo)了,被Sql攻擊了。在本文中,我們將通過使用 () 函數(shù)作為干預(yù)來與您討論。
() 函數(shù)
(n),暫停數(shù)據(jù)庫n秒。
不要混淆控制臺(tái)中的狀態(tài)。它描述了連接的狀態(tài)。 () 函數(shù)做一件事,就是暫停數(shù)據(jù)庫的執(zhí)行網(wǎng)站開發(fā),直到設(shè)定的時(shí)間。那么這個(gè)操作有什么用呢?為什么要使用它?
通常,有些操作需要一段時(shí)間的操作,而這些操作需要臨時(shí)的操作或更新(比如數(shù)據(jù)鎖,比如記錄一個(gè)pos點(diǎn)后,備份一個(gè)從庫),當(dāng)然也可能也是黑客攻擊。
漏洞滲透掃描
如果你的數(shù)據(jù)庫和網(wǎng)站沒有采取安全措施,直接將端口暴露在公網(wǎng)(如ssh 22端口、3306端口),那么掃描儀很快就能掃描滲透你的端口。因此,綜中意在主機(jī)保護(hù)中也提到了條款:禁止端口暴露于公網(wǎng);修改常用端口。具體來說,最常用的掃描滲透和安全審計(jì)工具是。
是使用它編寫的數(shù)據(jù)庫SQL注入掃描工具。目前支持,,,,,,,,,,,,,,,,,,,,,,,,,,2等常見的數(shù)據(jù)安全漏洞(sql注入)
在盲主掃描中,通常會(huì)用到各種sql語句,通常會(huì)用到命令。例如360 php防注入代碼,掃描那些使用舊的或非 pDO 連接的 pHp 網(wǎng)站,然后枚舉易受攻擊的 AJAX 命令或 GET/pOST 結(jié)果的列表。通常需要在輸出掃描結(jié)果時(shí)停止執(zhí)行。
而類似的工具可以并行攻擊數(shù)十個(gè)站點(diǎn),通過強(qiáng)制這些站點(diǎn)上的數(shù)據(jù)庫一段時(shí)間(數(shù)量設(shè)置取決于個(gè)人經(jīng)驗(yàn)),并計(jì)算時(shí)間來測(cè)試滲透命令的有效性。這是在安全行業(yè)。通常稱為基于時(shí)間的盲注。
快速剖析
本文開頭我們舉了一個(gè)sql語句的例子,是常用的盲注的典型語句。如果語句被執(zhí)行,條件語句部分被替換成類似下面的內(nèi)容,那么它絕對(duì)會(huì)鎖定數(shù)據(jù)庫:
col.id = ((0)from(((90)))v)/*'+((0)from(((90)) )v)+'"+((0)from(((90)))v)+"*/;
請(qǐng)注意,該語句巧妙地使用了各種運(yùn)算符和分隔符。請(qǐng)注意,此語句對(duì)于僅拼寫 sql 語句的程序很有用。使用pDO,語句可以過濾,不能執(zhí)行。
pHp 注入示例
讓我們寫一個(gè)php例子來解釋這個(gè)問題??聪旅娴暮瘮?shù):
在上面的例子中,我們使用了 () 函數(shù)來生成一個(gè)逗號(hào)分隔的 ID 列表。由于沒有對(duì)輸入進(jìn)行校驗(yàn),可能傳入數(shù)組中存在非法命令或?qū)?shù)據(jù)庫表中的數(shù)據(jù)轉(zhuǎn)儲(chǔ)到顯示頁面。解決這個(gè)問題,需要對(duì)傳入的數(shù)據(jù)進(jìn)行校驗(yàn),并校驗(yàn)長度(根據(jù)實(shí)際需要限制參數(shù)長度,可以大大防止注入成功)。
可以使用pDO等鏈接框架,使用占位符替換(綁定)參數(shù)生成SQL語句,并通過參數(shù)驗(yàn)證,可以防止大部分SQL注入值。
pDO 不是萬能藥
上面我們也說了pDO可以防止大部分pHp Sql注入問題,但不能100%保證解決所有問題。
前面說過,把Sql獨(dú)創(chuàng)的動(dòng)態(tài)組合方式放在一起,讓很多pHp系統(tǒng)都處于危險(xiǎn)之中
所以,不知所措的程序員難免會(huì)通過谷歌尋求幫助:
以上是網(wǎng)上非常流行的pDO教程之一。代碼使用了pDO,但與Sql的純手工拼湊無異。這也是一種非常危險(xiǎn)的做法。
下面也有答案(某知名編程問答網(wǎng)站):
你看到了嗎?這是糟糕的代碼網(wǎng)站開發(fā),但它仍然被接受。編碼者接受的概念是“使用pDO防止sql注入”,但是他們不知道pDO還有一個(gè)防止注入的前提,那就是必須用“?占位符綁定來寫SQL,然后,然后”,否則沒用。
不要低估()
也許你覺得()的執(zhí)行沒有什么問題?至少不要?jiǎng)h除你的數(shù)據(jù)庫。 () 易于識(shí)別,通常在此階段危害不大。但是通過盲注Fuzz測(cè)試數(shù)據(jù),可以執(zhí)行大量查詢,快速找到有效的攻擊EXp。
其實(shí)這就是死核函數(shù)。這種想法的一個(gè)問題是,在依賴于 UX/UI 的生產(chǎn) Web 項(xiàng)目中,通常的做法是將代碼執(zhí)行用戶限制為只有權(quán)限,而不是給他 DROp 權(quán)限。但是()只需要權(quán)限就可以使用。
如何禁止?
因?yàn)橹恍枰褂霉δ?,所以不需要?quán)限。并且可以作為“最安全”的命令執(zhí)行。
這只是一個(gè)SQL注入漏洞,您不能使用定時(shí)攻擊來暫停數(shù)據(jù)庫執(zhí)行或?yàn)g覽數(shù)據(jù)(或轉(zhuǎn)儲(chǔ))。而且一般情況下,不能通過簡單的配置來禁用功能。您可以在數(shù)據(jù)庫、表和列級(jí)別限制權(quán)限。當(dāng)然,如果有辦法簡單地禁止某些危險(xiǎn)功能,也是有道理的(比如php.ini中的配置)。
其實(shí)也給了我們一個(gè)防御思路,基于對(duì)關(guān)鍵字的檢測(cè)來實(shí)現(xiàn)SQL攻擊預(yù)警和防御。例如,基于此檢測(cè)原理開發(fā)了 Web 防火墻 App-Waf(://App-Waf)。通過分析訪問日志中的關(guān)鍵字360 php防注入代碼,它包括功能。以下是我使用的關(guān)鍵字。規(guī)則(部分)。
本文中bug和大家用()函數(shù)作為介入來討論Sql注入的問題。一般來說,可以使用()來枚舉SQL漏洞。 pDO綁定參數(shù)的方法可以防止Sql注入。 ( ) 一般無害,一般情況下也很少使用,但可以變身寶物,作為檢測(cè)攻擊的手段。
更多安全和Sql注入問題,關(guān)注bug,bug會(huì)寫文章和大家一起學(xué)習(xí)。
網(wǎng)站題目:360php防注入代碼慢查詢?nèi)罩静僮饔惺裁从??為什么要用它呢?phppdo防注入
文章起源:http://jinyejixie.com/news38/296488.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、App開發(fā)、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容