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

báo cáo an tòan thông tin lab 5 sql injection

15 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề SQL Injection
Tác giả Đỗ Huỳnh Gia Khang
Người hướng dẫn TS. Huynh Nguyộn Chinh
Chuyên ngành An Toan Thong Tin
Thể loại Lab Report
Năm xuất bản 2023
Thành phố TP.Hồ Chớ Minh
Định dạng
Số trang 15
Dung lượng 6,65 MB

Nội dung

Get Familiar with SQL Statements Pau tiéntr ta sé install database cé san trén seed bang lệnh sau: o mysql -u root —pseedubuntu "1 Mi t% G3 ¢ «— zosem [10/04/23]seed@GVM:~S$ mysql -u

Trang 1

BAO CAO MON HOC: AN TOAN THONG TIN

LAB5 SQL INJECTION

GVHD: TS.Huynh Nguyén Chinh Sinh viên thực hiện: Đỗ Huỳnh Gia Khang MSSV: 21110891

TP.Hồ Chí Minh, tháng 10 năm 2023

AL

Trang 2

Lab 5 SQL Injection Prepare:

- Pre-built Ubuntu VM (download from the SEED Website)

LAB GUIDE:

1 Review the lab environment

URL: http://www.SEEDLabSQLInjection.com

Folder: /var/www/SQLInjection/

- Mo cac té§ tin và chỉnh sửa:

#v1 /etc/host

ty BE) 8 4) 7:06PM 3

/bin/bash

/bin/bash 66x24

[19/64/23] seed@VM:~$ vi /etc/host

aL

Terminator

/bin/bash

/bin/bash 66x24

- 12/208.1.1

” i following lines are desirable for IPv6 capable hosts

ip6-localhost ip6- loopback

1p6- Locatnet

ip6-mcastprefix

ip6-allnodes

ip6-allrouters

www SeedLabSQLInjection.com www xssLlabelgg.com

www.csrflabelgg.com www.csrflabattacker.com www repackaginattackLab.com

www seedlabclickjacking.com

Na ALL

Mount the virtual guest, Iaunch a Terminal, and use it Then, t-insalL toi Todds Hep

gq Cichin the virtual screen to |,

send heystrokes

Trang 3

# /etc/ apache2/sites-available/ 000-default.conf

[10/04/23] seed@VM:~$ vi /etc/apache2/sites-available/900-default.c

onf

=m

Terminator t G3 1 6 it

- yA 1A)

bin/bash 66x24

ServerName http://www.SeedLabSQLIinjection.com

DocumentRoot /var/www/SQLIinjection

</VirtualHost>

<VirtualHost *:80>

ServerName http://www xssLlabelgg.com

DocumentRoot /var/www/XSS/Elgg

</VirtualHost>

<VirtualHost *:80>

ServerName http://www.csrflabelgg.com

DocumentRoot /var/www/CSRF/Elgg

</VirtualHost>

<VirtualHost *:80>

ServerName http://www.csrflabattacker.com

DocumentRoot /var/www/CSRF/Attacker

</VirtualHost>

<VirtualHost *:80>

ServerName http://www repackagingattackLab.com

DocumentRoot /var/www/RepackagingAttack

</VirtualHost>

ÑVirtuatHost *:8oe>

ServerName http://www.seedlabclickjacking.com

DocumentRoot /var/www/seedlabclickjacking

</VirtualHost>

52,1 Bot Make sure that you tre logged In to the guest operating system Mount the virmsal CD dmv in the quest, Imanch @ Terminal, and uss tar to uncompress the mstaler Then, enscute verwvare-instal.pl to nstal VMware Tools map

2 Get Familiar with SQL Statements

Pau tiéntr ta sé install database cé san trén seed bang lệnh sau:

o mysql -u root —pseedubuntu

"1

Mi) t% G3 ¢ «—) zosem

[10/04/23]seed@GVM:~S$ mysql -u root -pseedubuntu

mysql: [Warning] Using a password on the command line i nterface can be insecure

Welcome to the MySQL monitor Commands end with ; or \

ig

Your MySQL connection id is 6

Server version: 5.7.19-OubuntuoO.16.O4.1 (Ubuntu)

Copyright (c) 2000, 2017, Oracle and/or its affitiates AtLt rights reserved

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates Other names may be trademarks of their resp ective

owners

Type 'hetp;' or ‘\h' for help Type ‘\c' to clear the c

urrent input statement

mysqt>

Trang 4

Ta sé su dung database Users nén ta sé xem bén trong Users:

mysql> use Users;

s4 và

Terminal t GJ š s) 7osPxA 2 File Edit View Search Terminal Help

|: eae version: 5.7.19-Oubuntuo.16.04.1 (Ubuntu)

Copyright (c) 2000, 2017, Oracle and/or its affiliates ALL rights reserved

eal Oracle is a registered trademark of Oracle Corporation and/or its

affiliates Other names may be trademarks of their resp ective

= owners

Ly LIÌM4~ ‘help; or ‘\h‘' for help Type ‘\c' to clear the c urrent input statement

— mysai> use Use 3)

Reading rmation for completion of table and c olumn names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql>

mysql> show tables;

Terminat t By ¢ se) 7o9sPA +?

| ective

owners

Zz Type ‘heltp;' or ‘\h* for help Type ‘\c' to clear the c

a input statement

mysql> use Users;

Reading table information for completion of table and c olumn names

You can turn off this feature to get a quicker startup with -A

ase change

mysql> show tables;

“1 row in set (0.00 sec)

Có thê thấy trong Users chỉ có 1 bảng duy nhấtử ta sẽ thử xem cấu trúc của bảng bằng

lệnh:

mysql> describe credential;

Trang 5

Terminal >) 7:16PM if

mysql> describe credential;

int(6) unsigned auto increment |

Name | varchar(30)

|

Tan) | varchar(20)

|

Salary | int(9)

|

birth | varchar(20)

|

SSN | varchar(20)

PhoneNumber | varchar(20)

|

Address |_ varchar(300)

Terminal ~@) 7:16PM xt

Salary

birth

SSN

PhoneNumber

Address

roe me

NickName

Password

3 SQL Injection Attack on SELECT Statement

| int(9)

|

varchar(20) varchar(20) + ey s

g7

|

varchar (300)

|

varchar(300)

Ta có thê xem qua thông tin của một số user thông qua câu lệnh SELECT:

NULL NULL NULL

NULL

NULL NULL NULL

Trang 6

File Edit View Search Terminal Help

x; check the manual that corresponds to your MySQL serv

er version for the right syntax to use near ‘mysql> sel ect * from credential where Name = "ALice”' at Line 1 mysql> select * from credential where Name = “Alice”;

Fe

| Address EmaiL | NickName | Password

20000 9/20 10211002

Ffdbe918bdaes3000

1 row in set (0.02 sec) 5 —

ynh Gia Khang)

mysql>

4 SQL Injection Attack from webpage

Sau khi đã xem sơ qua database Usersử tiếp theoử ta sẽ tiến hành vào trang

www.SEEDLabSQLInJection.com đề thực hiện tân công vào database nay

+ EN ‡ «) 7:30PM xt

+

-)¬ CC i seedlabsqlinjection.com 60% OF WY >»

%# Most Visited EF SEEDLabs 5 Sites for Labs

_

=

Employee Profile Login

USERNAME | Jser PASSWORD

Copyright © SEED LABs

Trang 7

Ta sẽ thử dùng lệnh để đăng nhập trái phép với quyền Admin và database:

SQLi Lab

<)> @ i seedlabsqlinjection.com 60% OF wW >»

Employee Profile

Login USERNAME | admin’ # PASSWORD Password

Copyright © SEED LABs

Với lệnh trên ta đã đăng nhập thành công vào trang web với quyền Adminử ở đây ta có thê thây được thông tin của các user:

Bookmarks s Help

SQLiLab oa a

< | i seedlabsqlinjection.com 60% UF W >» =

<%# Most Visited BPN SEEDLabs | Sites for Labs

Logout

User Details

Copyright © SEED LABs

Trang 8

Ta còn có thể thực hiện các thao tác của Admin như thay đổi profile cha Admin:

mm

b - Mozilla Firefox

Edit

SQLiLab

< = i seedlabsaqlinjection.com 60% OF WY >»

<< Most Visited ES SEEDLabs 65 Sites for Labs

Admin's Profile Edit

NickName Email

Phone

Number Password

Copyright © SEED LABs

5 SQL Injection Attack on UPDATE Statement

a Modify your own salary:

As shown in the Edit Profile page’ employees can only update their nicknamestr emailst addresses phone numbers and passwords; they are not authorized to change their salaries Assume that you (Alice) are a disgruntled employeet and your boss Boby did not mcrease your salary this year You want to increase your own salary by exploiting the SQL injection vulnerability in the Edit-Profile page Please demonstrate how you can achieve that We assume that you do know that salaries are stored in a column called

>

‘salary’

Bay giờử đề thực hiện yêu cầu trênử ta sẽ làm tương tự để đăng nhập trái phép vào user Alice:

Trang 9

File Edit View

SQLiLab

< a i seedlabsqlinjection.com 60% @& v lll

=

Employee Profile gin

USERNAME | Alice’ #|

PASSWORD Password

Copyright © SEED LABs

J.vM

- MozitLta Firefox + EN ‡ «~) 7:33PM i File Edit aT Lisle

< Cc i seedlabsqlinjection.com 60% @& š Ill

%* Most Visited FN SEEDLabs 5 Sites forLabs

= Logout

Alice Profile

Cd eS

Salary 20000

NickName Email

Phone Number

Ở đâyử ta được yêu cầu là thay đôi lương của Alice nhưng có thé thay trong Edit Profile của Alice không có mục Salaryử nên ta sẽ sử dụng lệnh sau đề có thê thay đôi trái phép: 'ử Salary = 386000 where Name = 'Alice'; #

Trang 10

seedlabsqlinjection.com

ted

60% &2 v+y

BS) SEED Labs E=3 Sites for Labs

Alice's Profile Edit

Email Address

Number

Copyright © SEED LABs

Có thê thấy lương ban đầu của Alice là 20000 và giờ ta đã tăng thành 38600

Edit

mu Bt ~

A v Bookmarks re od

SQLi Lab at

%# Most Visited FS] SEEDLabs & Sites for Labs

Alice Profile

4 a e Employee ID 10000

Birth 9/20

SSN 10211002

NickName Email Address

Phone Number

Trang 11

Ta có thê kiểm tra lại trén database:

b Modify other people’s salary

Modify other people’ salary After increasing your own salaryu you decide to punish your boss Boby You want to reduce his salary to 10000 dollar Please demonstrate how you can achieve that

Tiếp theoử ta thử thay đối lương của Boby bằng lệnh tương tự:

'ử Salary = I0000 where Name = 'Boby';#

Sau đóử ta sẽ thử kiểm tra trong database Ta thấy lương của Boby đã trở về giá trị 10000:

Trang 12

c Modify other people’s password:

After changing Boby’s salaryt you are still disgruntledt so you want to change Boby’s password to something that you knoww and then you can log into his account and do further damage Please demonstrate how you can achieve that You need to demonstrate that you can successfully log into Boby’s account using the new password One thing worth mentioning here is that the database stores the hash value of passwords instead of the plaintext password string You can again look at the unsafe edit backend.php code to see how password is being stored It uses SHAI hash function to generate the hash value

of password

Tiếp theoử ta sẽ đánh cắp mật khâu của user Boby bằng cách thay đôi mật khâu của user bằng lệnh tương tự như trên Nhưng trước đó ta phải mã hóa mật khâu cần đổi sang mã

bằng SHAI1.Ta sẽ mở I termmal khác và thực hiện lệnh sau:

6 echo -n'121212'| openssl shal

Sau khi có mật khâu đã được mã hóa ta sẽ thực hiện thay đổi mật khâu bằng lệnh sau:

Trang 13

'ửPassword='48058e0c99bf7d689ce7 Lc360699a14ce2f99774' where Name='Boby'; #

m

- Mozilla Firefox t G3 ¢ «) 7:50pm +t File Edit View History Bookmarks Tools Help

+

< ® i seedlabsqlinjection.com 60% OF LY >» =

# Most Visited ES] SEEDLabs 5 Sites for Labs

^ Logout

Alice's Profile Edit

Email Address Phone Number Password

Copyright © SEED LABs

Ta sé kiém tra trén database dé xem mật khâu của Boby đã được thay đôi chưa:

ysql> select Name,password,salary from credential wher

le Name =

1 row in set (0.00 sec)

ysql> §f

Sau khi đôi mật khâu thành côngử giờ ta sẽ thử đăng nhập đề kiểm tra:

Trang 14

my Ht +»)

SQLiLab

«=)> CC seedlabsaqlinjection.com 60%

% Most Visited EQ SEEDLabs S3 Sites for Labs

_

=

Employee Profile Login

PASSWORD

Copyright © SEED LABs

Và ta đã đăng nhập thành công vào user Bobyử ở đây có thê thấy được lương của Boby là 1 như ta thay đôi ở trên

erie ag ged

aS Edit View my Be

History Bookmarks aT SQLiLab ar

< = seedlabsqlinjection.com 60% OF wv >» =

%# Most Visited [5 SEEDLabs {5 Sites forLabs

= Logout

Boby Profile

Employee ID 20000

NickName

Email

Address

Phone Number

Bây giờử ta sẽ thử thay đổi thong tin của Body:

Trang 15

<_-)-> @& i seedlabsqlinjection.com 60% - OF ww > =

Employee Profile

Login USERNAME Boby PASSWORD ee ee ee eee eee eee

Copyright © SEED LABs

Và ta đã sửa thành côngử thông tin của Boby đã được cập nhật lại:

4.VM

b - MoziLLa Firefox

File <0 Bookmarks Tools

SQLiLab =o

< es i seedlabsqtinjection.com 60% OF WY >>

<# Most Visited FP] SEED Labs £5 Sites for Labs

Boby Profile

cu eter Employee ID 20000

SSN 10213352

Email

Address

Ngày đăng: 16/08/2024, 17:36

w