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 2Lab 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 4Ta 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 5Terminal >) 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 6File 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 7Ta 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 11Ta 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 12c 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
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
Address