Chủ Nhật, 1 tháng 12, 2013

Lý do tại sao bạn sử dụng WAF queries bypassing?

Nhiều người sử dụng cheat-sheets để bypass Web Application Firewall [WAF] và đa phần trong số họ đều không biết tại sao họ lại viết /*!union*/ mà không phải union?

Vì vậy theo mình, những gì mình chia sẻ dưới đây sẽ là lời giải thích nhanh cho họ!
Với một truy vấn (/*!12345query*/) được gọi là C-style comments cho phép bạn thực hiện những truy vấn SQL trong comment.

Dưới đây là một số ví dụ và giải thích:
/*!12345union*/ 1,2,3,... injected query-- -

Khi chúng ta thực hiện điều này, các máy chủ MySQL sẽ phân tích truy vấn của chúng ta nó sẽ thực hiện chỉ khi phiên bản MySQL là lên đến 1.23.45 (12345 là những con số mình quẩy linh tinh nhằm giải thích thôi :P )

Hãy thử một lần nữa để chúng ta hiểu rõ hơn:

www.site.com/test.php?id=1 /*!50000union*/ 1,2,3,... injected query-- -

Nó sẽ thực hiện chỉ khi phiên bản MySQL lên đến 5.00.00 sau đó truy vấn sẽ thực hiện, bởi vì hầu hết các phiên bản MySQL hiện tại là lớn hơn (sau) 5.00.00.
Nó giống như 5.20.35 v.v..



Đó là những gì? Và nhầm lẫn đã xảy ra?


/*!union*/
Đó là nói "nếu phiên bản là tới 0 thì thực hiện truy vấn." 
Hãy xem lại những gì chúng ta đã nói.

Hãy thử truy vấn:


www.site.com/test.php?id=1 /*!65432union*/ 1,2,3,... injected query-- -

Lỗi 403 đã không xuất hiện, nhưng có lỗi MySQL.
Bây giờ các bạn có thể cho mình biết tại sao rồi chứ?

Mong các bạn đóng góp nếu bài viết của mình còn thiếu sót.

Hy vọng qua bài viết này của mình, các bạn có thể học được một cái gì đó hay hiểu được một vấn đề nào đó giúp ích cho các bạn.
Cảm ơn sự quan tâm của các bạn tới Blog của mình!
Thân,
Kẻ Chọc Giận
VNHFamily.Us - VNHack Group

9 nhận xét: