国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SQL注入攻擊與防護

這篇具有很好參考價值的文章主要介紹了SQL注入攻擊與防護。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、SQL注入攻擊概述

1.1 SQL注入概念

1.1.1 標準查詢過程

1.1.2 SQL注入定義

1.2 SQL注入根本原因

1.3 SQL注入條件

1.4 SQL注入防范

1.4.1 根本原因:過濾不嚴

1.4.2 安全設計原則:數(shù)據(jù)與代碼分離

1.5?SQL注入流程

1.6 SQL注入分類

1.6.1 回顯注入

1.6.2 盲注

二、回顯注入攻擊

2.1 尋找注入點

2.1.1 常用語句

2.1.2 頁面反饋?

2.2 查字段數(shù)

2.2.1 常用的命令

2.2.2 代碼語句

2.3 MySQL數(shù)據(jù)庫

2.3.1 MySQL系統(tǒng)函數(shù)

三、SQL盲注攻擊

3.1 SQL盲注特點

3.1.1 只有true和false

3.1.2 無數(shù)據(jù)庫有效信息

3.2 SQL盲注分類

3.2.1 布爾盲注

3.2.2 時間盲注

3.2.3 報錯盲注

3.3 盲注總體思路

四、SQL注入攻擊防護

4.1 SQL注入防護思想

4.1.1 SQL注入關鍵條件

4.1.2 SQL注入本質(zhì)

4.1.3 安全設計原則

4.2 SQL注入防護方法

4.2.1 參數(shù)過濾

4.2.2 預編譯處理

五、SQLMap使用

5.1 SQL注入工具

5.1.1 SQLMap

5.1.2 阿D

5.1.3 名小子

5.2 SQLMap的使用

5.2.1 SQLMap介紹

5.2.2 具體使用步驟(GET型)


一、SQL注入攻擊概述

1.1 SQL注入概念

1.1.1 標準查詢過程

SQL注入攻擊與防護

1.1.2 SQL注入定義

攻擊者把SQL命令插入到Web表單的輸入域頁面請求的查詢字符串,并且插入的惡意SQL命令會導致原有SQL語句作用發(fā)生改變,從而得到欺騙服務器執(zhí)行惡意SQL命令的一種攻擊方式。

1.2 SQL注入根本原因

沒有對用戶輸入數(shù)據(jù)的合法性進行判斷

1.3 SQL注入條件

  • 用戶能夠控制輸入的參數(shù),前端傳給后端的參數(shù)內(nèi)容是用戶可以控制的。
  • 用戶輸入的參數(shù)被拼接到SQL語句,且帶入數(shù)據(jù)庫查詢,成為了要執(zhí)行的代碼。

1.4 SQL注入防范

1.4.1 根本原因:過濾不嚴

1.4.2 安全設計原則:數(shù)據(jù)與代碼分離

1.5?SQL注入流程

  • 判斷Web系統(tǒng)使用的腳本語言,發(fā)現(xiàn)注入點,并確定是否存在SQL注入漏洞
  • 判斷Web系統(tǒng)的數(shù)據(jù)庫類型
  • 判斷數(shù)據(jù)庫中判斷表及相應字段的結(jié)構(gòu)
  • 構(gòu)造注入語句,得到表中數(shù)據(jù)內(nèi)容
  • 查找網(wǎng)站后臺,并用SQL注入得到的管理員賬號和口令登陸
  • 結(jié)合其他漏洞,上傳Webshell并持續(xù)連接
  • 進一步提權(quán)得到服務器的系統(tǒng)權(quán)限
  • 查找注入點
  • 查庫名
  • 查表名
  • 查字段名
  • 查重點數(shù)據(jù)

1.6 SQL注入分類

1.6.1 回顯注入

即用戶發(fā)起查詢請求,服務器將查詢結(jié)果返回到頁面中進行顯示

1.6.2 盲注

盲注的特點是用戶發(fā)起請求,這個請求不一定是查詢,服務器響應請求進行數(shù)據(jù)庫查詢,將結(jié)果返回但不顯示具體的查詢結(jié)果。典型的場景如用戶注冊,我們只會得到是否注冊成功提示,并不會顯示出數(shù)據(jù)庫內(nèi)容。

二、回顯注入攻擊

2.1 尋找注入點

2.1.1 常用語句

' //單引號測試
1' and '1'='1 //恒真測試
1' and '1'='2 //恒假測試

2.1.2 頁面反饋?

  • 頁面無變化。以上三種情況頁面都沒有任何不同,那么說明后臺針對此查詢點的過濾比較嚴格,是否存在SQL注入漏洞還需要進行后續(xù)測試。
  • 頁面中少了部分內(nèi)容。如果前兩種情況正常,而第三種情況明顯頁面有缺失,則基本可以確定存在SQL注入漏洞,用下一步繼續(xù)進行判斷。
  • 錯誤回顯。如果訪問第三個連接后出現(xiàn)數(shù)據(jù)庫報錯信息,明顯可以判斷存在注入,用回顯注入法進行注入。
  • 跳轉(zhuǎn)默認界面。第一種情況正常,而第二、三個直接跳轉(zhuǎn)到首頁后者默認頁面,那么可能后臺有驗證邏輯。
  • 直接關閉連接。如果上述的第二、三種情況出現(xiàn)訪問失敗,那么就可能時開啟了防護類工具在線阻斷了。

2.2 查字段數(shù)

2.2.1 常用的命令

  • order by(確認表的列數(shù))
  • union(判斷回顯的具體字段位,一般構(gòu)造前面的語句為假)

2.2.2 代碼語句

1' order by 1 #
1' order by 5 #

注釋:#、(%23)、--+

2.3 MySQL數(shù)據(jù)庫

SQL注入攻擊與防護

2.3.1 MySQL系統(tǒng)函數(shù)

version() //返回當前數(shù)據(jù)庫的版本信息
user() //返回當前用戶
database() //返回當前數(shù)據(jù)庫名
Group_concat() //將查詢結(jié)果連接成字符串

2.3.2 SQL注入危害

  • 繞過檢測非法登陸
  • 非法查詢關鍵信息

三、SQL盲注攻擊

3.1 SQL盲注特點

3.1.1 只有true和false

3.1.2 無數(shù)據(jù)庫有效信息

回顯注入語句中加入判斷方式,使得返回結(jié)果為true或false。

3.2 SQL盲注分類

3.2.1 布爾盲注

布爾盲注是構(gòu)造SQL判斷語句

1' and length(database())>=5 #
1' and substr(database(),1,1)=d?#
" and ord(substr(database(),3,1))=119 #

3.2.2 時間盲注

  • 時間盲注是利用時間函數(shù),觀察不同條件的等待時長。利用Sleep()或 benchmark() 等函數(shù)讓MySQL的批行時間變長。
  • 時間盲育注入多與 if( expr1,expr2,expr3) 函數(shù)結(jié)合使用,其中若 expr1 為True,則返回值為 expr2 的值,否則是 expr3 的值。
If(length(database())>3, sleep(5),1)
lf(substr(database() ,1,1)='d', sleep(5),1)

3.2.3 報錯盲注

構(gòu)造特殊參數(shù)形式,利用某些函數(shù)的報錯信息進行注入。如 updatexml(XML_document,XPath_string, new_value) 用 new_value 替換 XML_document 中符合 XPath_ string 的值。其中:

  • XML_document:String格式,為XML文檔對象的名稱
  • XPath_string:Xpath格式的字符串
  • new_value:String格式,替換查找到的符合條件的數(shù)據(jù)
updatexml(1,concat(0x7e,(SELECT database()),0x7e),1) //0x7e是~的十六進制ASCLL值
→?ERROR 1105 (HY000): XPATH syntax error: '~dvwa~'

獲取數(shù)據(jù)庫 dvwa下的表名:

updatexml(1,concat(0x7e,(SELECT table_name from information_schema,tables where 
table_schema='dvwa' limit 0,1),0x7e),1) //報錯注入只顯示一條結(jié)果,故使用 limit 語句

3.3 盲注總體思路

將想要查詢的數(shù)據(jù)作為目標,構(gòu)造SQL條件判斷語句,與要查詢的數(shù)據(jù)進行比較,并讓數(shù)據(jù)庫告之當前語句批行是否正確。

四、SQL注入攻擊防護

4.1 SQL注入防護思想

4.1.1 SQL注入關鍵條件

  • 用戶可控輸入
  • 參數(shù)帶入數(shù)據(jù)庫查詢

4.1.2 SQL注入本質(zhì)

把用戶輸入當作代碼執(zhí)行

4.1.3 安全設計原則

數(shù)據(jù)與代碼分離

4.2 SQL注入防護方法

SQL注入攻擊與防護

4.2.1 參數(shù)過濾

① 參數(shù)類型限制

  • 參數(shù)類型限制:類型判定函數(shù),如數(shù)字型判定 is_numeric(),cytpe_digit() 等
  • 參數(shù)長度限定:如 strlen() 等

② 危險字符處理

  • 黑名單過濾:針對參數(shù)中敏感字符進行過濾,用到 preg_replace() 函數(shù),如union,\,' ,select等
  • 白名單過濾:符合白名單的方能通過
  • 參數(shù)轉(zhuǎn)義:使用函數(shù) mysgli_real_escape_string 對特殊符號轉(zhuǎn)義

4.2.2 預編譯處理

預編譯語句,綁定變量,進行參數(shù)化查詢。數(shù)據(jù)庫服務器在數(shù)據(jù)庫完成SQL指令的編譯,才套用參數(shù)運行,參數(shù)不會被數(shù)據(jù)庫運行,且僅當它是一個參數(shù)而言。

五、SQLMap使用

5.1 SQL注入工具

5.1.1 SQLMap

5.1.2 阿D

5.1.3 名小子

5.2 SQLMap的使用

5.2.1 SQLMap介紹

① 概述

開源的自動化SQL注入工具,由Python寫成

② 主要功能

掃描、發(fā)現(xiàn)、利用給定URL的SQL注入漏洞

③ 特點

  • 完全支持多種數(shù)據(jù)庫管理系統(tǒng):MySQL、 Oracle、PostgreSQL、 Microsoft SQL Server.Microsoft Access、IBM DB2、SQLite、 Firebird、Sybase.SAP MaxDB、HSQLDB和Informix等
  • 支持 5 種SQL注入技術(shù)聯(lián)合查詢注入:市爾盲注、時間盲注、報錯盲注、堆查詢注入
  • 支持枚舉用戶、密碼、哈希、權(quán)限、角色、數(shù)據(jù)庫、數(shù)據(jù)表和列
  • 支持自動識別密碼哈希格式并通過字典破解密碼哈希

5.2.2 具體使用步驟(GET型)

① 判斷是否存在注入

sqlmap.py -u "127.0.0.1/sqli-labs/Less-1/?id=1"

② 爆庫

sqlmap.py -u "127.0.0.1/sqli-labs/Less-1/?id=1" --dbs

③ 爆表

sqlmap.py -u "127.0.0.1/sqli-labs/Less-1/?id=1" --tables -D security

④ 爆列

sqlmap.py -u "127.0.0.1/sqli-labs/Less-1/?id=1"--columns -T users -D security

⑤ 爆數(shù)據(jù)

sqlmap.py -u "127.0.0.1/sqli-labs/Less-1/?id=1” --dump -cpassword,username -T users -D security

POST型:sqlmap.py -r 3.txt --dbs

cookie型:sqlmap.py -u “127.0.0.1/sqli-1abs/Less-20/" --cookie "uname=admin" --level 2文章來源地址http://www.zghlxwxcb.cn/news/detail-498405.html

到了這里,關于SQL注入攻擊與防護的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • SQL注入攻擊與防御

    SQL注入攻擊與防御

    一、SQL注入原理及危害 ????????SQL注入漏洞是指攻擊者通過瀏覽器或者其他客戶端將惡意SQL語句插入到網(wǎng)站參數(shù)中,而網(wǎng)站應用程序未對其進行過濾,將惡意SQL語句帶入數(shù)據(jù)庫使惡意SQL語句得以執(zhí)行,從而使攻擊者通過數(shù)據(jù)庫獲取敏感信息或者執(zhí)行其他惡意操作。 ????

    2023年04月15日
    瀏覽(33)
  • SQL 注入漏洞攻擊

    SQL 注入漏洞攻擊

    假設你用自己的用戶名和密碼登錄了一個付費網(wǎng)站,網(wǎng)站服務器就會查詢一下你是不是 VIP 用戶,而用戶數(shù)據(jù)都是放在數(shù)據(jù)庫中的,服務器通常都會向數(shù)據(jù)庫進行查詢,要向數(shù)據(jù)庫進行增刪改查操作,就需要用到 SQL 語言。 但是,作為 SQL 的注入攻擊者,我們并不知道網(wǎng)站的密

    2024年02月09日
    瀏覽(21)
  • SQL注入攻擊方法

    SQL注入攻擊是一種利用Web應用程序中存在的安全漏洞,通過在輸入框中插入惡意的SQL代碼,從而實現(xiàn)對數(shù)據(jù)庫的非法操作。以下是一些常見的SQL注入攻擊方法: 使用單引號(\\\')進行字符串拼接:在輸入框中插入帶有單引號的字符串,使得原始SQL語句結(jié)構(gòu)發(fā)生變化,從而實現(xiàn)

    2024年02月03日
    瀏覽(19)
  • SQL注入攻擊原理 實戰(zhàn)

    SQL注入攻擊原理 實戰(zhàn)

    我來進行實戰(zhàn)了,總在看教程。 提示:這里可以添加本文要記錄的大概內(nèi)容: 前言,前言,前言(撓頭)啊,我終于打?qū)崙?zhàn)了 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 看這樣子,應該是不存在的 如果沒有就繼續(xù)吧, 哎,你看它變了, 又回來了,沒有那就試試這個

    2024年02月12日
    瀏覽(20)
  • 【SQL注入攻擊介紹】

    【SQL注入攻擊介紹】

    目錄 前言 本質(zhì)和危害? 分類 注入一般步驟 注入實戰(zhàn) ? sql注入一直以來都穩(wěn)居owasp-top10榜首,近年來更是爆出很多的數(shù)據(jù)庫泄露攻擊事件,如最近上海某公安存在數(shù)據(jù)庫泄露事件。今天簡單的分析以下sql注入的一些特性和方式: ? owasp-top10 ? 一、sql注入的危害包括但不局限

    2024年02月06日
    瀏覽(25)
  • 網(wǎng)絡安全---SQL注入攻擊

    網(wǎng)絡安全---SQL注入攻擊

    ????????SQL 注入是一種代碼注入技術(shù),可利用 Web 應用程序和數(shù)據(jù)庫服務器之間接口中的漏洞。當用戶的輸入在發(fā)送到后端數(shù)據(jù)庫服務器之前未在 Web 應用程序中正確檢查時,該漏洞就存在。 ????????許多 Web 應用程序從用戶處獲取輸入,然后使用這些輸入構(gòu)建 SQL 查詢

    2024年04月12日
    瀏覽(23)
  • 一文搞懂SQL注入攻擊

    隨著互聯(lián)網(wǎng)的發(fā)展和普及,網(wǎng)絡安全問題越來越突出,網(wǎng)絡在為用戶提供越來越多服務的同時,也要面對各類越來越復雜的惡意攻擊。SQL注入(SQL Injection)攻擊是其中最普遍的安全隱患之一,它利用應用程序?qū)τ脩糨斎霐?shù)據(jù)的信任,將惡意SQL代碼注入到應用程序中,從而執(zhí)行

    2023年04月09日
    瀏覽(16)
  • SQL注入漏洞復現(xiàn):探索不同類型的注入攻擊方法

    這篇文章旨在用于網(wǎng)絡安全學習,請勿進行任何非法行為,否則后果自負。? 準備環(huán)境 sqlilabs靶場 安裝:Sqli-labs靶場搭建(適合新手小白圍觀)_sqlilabs靶場搭建-CSDN博客 ? 注入講解 介紹 ????????基于錯誤的注入(Error-based Injection)是一種 利用應用程序返回的錯誤信息來

    2024年02月11日
    瀏覽(26)
  • SQL注入進階:掌握聯(lián)合查詢注入和報錯注入攻擊技巧

    SQL注入進階:掌握聯(lián)合查詢注入和報錯注入攻擊技巧

    數(shù)據(jù)來源 ????????本文僅用于信息安全的學習,請遵守相關法律法規(guī),嚴禁用于非法途徑。若觀眾因此作出任何危害網(wǎng)絡安全的行為,后果自負,與本人無關。 介紹 ????????聯(lián)合查詢注入是SQL注入的一種,通過在原有的SQL語句中添加UNION(聯(lián)合)操作,將惡意構(gòu)造的

    2024年02月06日
    瀏覽(18)
  • SQL注入攻擊實戰(zhàn)演示(附源碼)

    SQL注入攻擊實戰(zhàn)演示(附源碼)

    SQL注入是一種非常常見的數(shù)據(jù)庫攻擊手段,SQL注入漏洞也是網(wǎng)絡世界中最普遍的漏洞之一。大家也許都聽過某某學長通過攻擊學校數(shù)據(jù)庫修改自己成績的事情,這些學長們一般用的就是SQL注入方法。 文章目錄: 何謂SQL注入? SQL數(shù)據(jù)庫操作示例 SQL數(shù)據(jù)庫注入示例 如何防止S

    2024年02月13日
    瀏覽(72)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包