Hướng dẫn error based sqli cheat sheet - bảng gian lận sqli dựa trên lỗi
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. 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ó. Các mẫu tấn công tiêm SQL 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. 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. Về mysql và php Về mysql và php supported, dark gray: not supported, light gray: unknown Các mẫu tấn công SQL được xếp chồng lên nhau Đ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. 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. ________ 32 & nbsp; 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. ________ 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; 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. *Giới thiệu về MySQL, | Đâ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. 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; 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. Một ví dụ khác: & nbsp; ________ 60 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 Injection 101, thủ thuật đăng nhập *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ậpNế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:
Dựa trên lỗi - Tìm tên cộtTì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ự,
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.
Các loại dữ liệu, liên minh, v.v.Hints,
Tìm loại cột
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+)
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)
Chèn số lượng lớnChè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.
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 VBS, WSH trong SQL Server (S)Bạn có thể sử dụng VBS, WSH Scripting trong SQL Server vì hỗ trợ ActiveX.
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.
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ó),
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
Các quy trình được lưu trữ nhiều hơn cho (các) máy chủ SQL
Ghi chú số lượng lớn MSSQL
Host_name () & nbsp; is_member (transact-sql) & nbsp; & nbsp; is_srvrolemember (transact-sql) & nbsp; & nbsp; 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)
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 SQLKhi bạn thực sự tức giận, & nbsp; ________ 108 Kích hoạt XP_CMDSHELL trong SQL Server 2005Theo 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.
Tìm cấu trúc cơ sở dữ liệu trong (các) máy chủ SQLNhận bảng xác định người dùng
Nhận tên cột
Hồ sơ di chuyển (các) hồ sơ
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
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
Nhận tên cột
Hồ sơ di chuyển (các) hồ sơNhận bảng xác định người dùng
Nhận tên cột
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 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 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.
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) 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) 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)
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.
Ngoài ra, bạn có thể sử dụng các phân số như thế này,
Các mẫu trong thế giới thực
Đ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!
Các mẫu trong thế giới thực
ProductID = ________ 130ProductID = ________ 131
ProductID = ________ 133ProductID = ________ 131
dbms_pipe.receive_message (O)ProductID = ________ 131
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; ________ 136Bảng kiểm tra tồn tại trong mysql & nbsp; ________ 137
pg_s ngủ (giây) (p)
Clear & NBSP; SQL tiêm
Hàm udfByte đầu tiên của quản trị viên băm Đọc tài liệu 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
|
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; ________ 136 | 6.5.1 |
Bảng kiểm tra tồn tại trong mysql & nbsp; ________ 137 | pg_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 |