使用burpsuite進行手動sql注入


burpSuite使用

sql注入

SQL注入是一個Web安全漏洞,它使攻擊者能夠干擾應用程序對其數據庫的查詢。通常,它使攻擊者可以查看他們通常無法檢索的數據。
成功的SQL注入攻擊可能導致未經授權訪問敏感數據,例如密碼,信用卡詳細信息或個人用戶信息。

在不同情況下會出現各種SQL注入漏洞,攻擊和技術。一些常見的SQL注入示例包括:

1)檢索隱藏的數據,您可以在其中修改SQL查詢以返回其他結果。
2)顛覆應用程序邏輯,您可以在其中更改查詢以干擾應用程序的邏輯。
3)UNION攻擊,您可以在其中從不同的數據庫表中檢索數據。
4)檢查數據庫,您可以在其中提取有關數據庫版本和結構的信息。
5)盲SQL注入,您控制的查詢結果不會在應用程序的響應中返回。


檢索隱藏數據

考慮一個顯示不同類別產品的購物應用程序。當用戶單擊“禮物”類別時,其瀏覽器將請求URL:
https://insecure-website.com/products?category=Gifts
這使應用程序進行SQL查詢,以從數據庫中檢索相關產品的詳細信息:
SELECT * FROM products WHERE category = 'Gifts' AND released = 1
此SQL查詢要求數據庫返回:
所有詳細信息(*)
從產品表
類別是禮物
並發布為1。
該限制released = 1用於隱藏未發布的產品。對於未發布的產品,大概是released = 0。

該應用程序未對SQL注入攻擊實施任何防御措施,因此攻擊者可以構建如下攻擊:
https://insecure-website.com/products?category=Gifts'--
這將導致SQL查詢:
SELECT * FROM products WHERE category = 'Gifts'--' AND released = 1
這里的關鍵是,雙破折號序列--是SQL中的注釋指示符,意味着查詢的其余部分將被解釋為注釋。這樣可以有效刪除查詢的其余部分,因此不再包含AND released = 1。這意味着將顯示所有產品,包括未發布的產品。

更進一步,攻擊者可以使應用程序顯示任何類別的所有產品,包括他們不知道的類別:
https://insecure-website.com/products?category=Gifts'+OR+1=1--
這將導致SQL查詢:
SELECT * FROM products WHERE category = 'Gifts' OR 1=1--' AND released = 1
修改后的查詢將返回類別為Gifts或1等於1的1=1所有項目。由於始終為true,因此查詢將返回所有項目。


顛覆應用邏輯

考慮一個允許用戶使用用戶名和密碼登錄的應用程序。如果用戶提交用戶名wiener和密碼bluecheese,則應用程序將通過執行以下SQL查詢來檢查憑據:
SELECT * FROM users WHERE username = 'wiener' AND password = 'bluecheese'
如果查詢返回用戶的詳細信息,則登錄成功。否則,將被拒絕。

在這里,攻擊者可以簡單地使用SQL注釋序列--從WHERE查詢子句中刪除密碼檢查,而無需密碼即可作為任何用戶登錄。例如,提交用戶名administrator'--和空白密碼將導致以下查詢:
SELECT * FROM users WHERE username = 'administrator'--' AND password = ''
該查詢返回用戶名為的用戶,administrator並成功以該用戶身份登錄攻擊者。


從其他數據庫表檢索數據

如果在應用程序的響應中返回了SQL查詢的結果,則攻擊者可以利用SQL注入漏洞從數據庫中的其他表中檢索數據。這是通過使用UNION關鍵字完成的,該關鍵字使您可以執行附加SELECT查詢並將結果附加到原始查詢中。
例如,如果應用程序執行以下查詢,其中包含用戶輸入“ Gifts”:
SELECT name, description FROM products WHERE category = 'Gifts'
然后攻擊者可以提交輸入:
' UNION SELECT username, password FROM users--
這將導致應用程序返回所有用戶名和密碼以及產品名稱和描述。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM