# Pentest fix
## **5.1**
### Bước 1
* Xem trước các user có quyền chọn , chèn, thêm , sửa , xóa database
* **Câu lệnh**
```
SELECT User , HOST , Select_priv , Insert_priv,Create_priv , Update_priv ,Delete_priv , Drop_priv FROM
mysql.user
where
(
Select_priv = 'Y' or
Insert_priv = 'Y' or
Create_priv = 'Y' or
Update_priv = 'Y' or
Delete_priv = 'Y' or
Drop_priv = 'Y'
) and
User NOT IN(<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN>)
ORDER BY
Host,
User
```
* **note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'```
### Bước 2:
* Lấy ra chuối các user có quyền chọn , chèn, thêm , sửa , xóa database
* **Câu lệnh**
```
select GROUP_CONCAT(t.user_infor) FROM ( SELECT CONCAT("'",User, "'@'",HOST,"'") as user_infor FROM
mysql.user
where
(
Select_priv = 'Y' or
Insert_priv = 'Y' or
Create_priv = 'Y' or
Update_priv = 'Y' or
Delete_priv = 'Y' or
Drop_priv = 'Y'
) and
User NOT IN(<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN>)
ORDER BY
Host,
User
) as t
```
* **Note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'```
* **Kết quả**
```
'root'@'%','test2'@'%','test5'@'%','toanpk'@'%','debian-sys-maint'@'localhost','rsafi'@'localhost'
```
### Bước 3:
* sau khi lấy được danh sách user cần phải update thực hiện chạy lệnh xóa quyền
```
REVOKE SELECT , INSERT , CREATE , UPDATE , DELETE, DROP ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2>
```
## **5.2**
### Bước 1:
* Xem trước các user có quyền Thao tác file
```
SELECT User , HOST , File_priv FROM
mysql.user
where
File_priv = 'Y'
and
User NOT IN(<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN>)
ORDER BY
Host,
User
```
* **note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'```
### Bước 2:
* Lấy ra các user có quyền Thao tác file
* **Câu lệnh**
```
select GROUP_CONCAT(t.user_infor) FROM ( SELECT CONCAT("'",User, "'@'",HOST,"'") as user_infor FROM
mysql.user
where
File_priv = 'Y'
and
User NOT IN(<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN>)
ORDER BY
Host,
User
) as t
```
* **Note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'```
* **Kết quả**
```
'toanpk'@'%','debian-sys-maint'@'localhost','rsafi'@'localhost'
```
### Bước 3:
* sau khi lấy được danh sách user cần phải update thực hiện chạy lệnh xóa quyền
```
REVOKE FILE ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2>
```
## **5.4**
tương tự 5.2 thay File_priv bằng Super_priv
### Bước 3 :
```
REVOKE SUPER ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2>
```
## **5.5**
tương tự 5.2 thay File_priv bằng Shutdown_priv
### Bước 3 :
```
REVOKE SHUTDOWN ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2>
```
## **5.6**
tương tự 5.2 thay File_priv bằng Create_user_priv
### Bước 3 :
```
REVOKE CREATE USER ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2>
```
## **5.7**
### Bước 1:
* Xem trước các user có quyền GRANT OPTION
```
SELECT User , HOST , Grant_priv FROM
mysql.db
where
Grant_priv = 'Y'
and
User NOT IN('root')
ORDER BY
Host,
User
```
* **note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'```
### Bước 2:
* Lấy ra các user có quyền GRANT OPTION
* **Câu lệnh**
```
select GROUP_CONCAT(t.user_infor) FROM ( SELECT CONCAT("'",User, "'@'",HOST,"'") as user_infor FROM
mysql.db
where
Grant_priv = 'Y'
and
User NOT IN(<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN>)
ORDER BY
Host,
User
) as t
```
* **note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'```
* **Kết quả**
```
'toanpk'@'%','debian-sys-maint'@'localhost','rsafi'@'localhost'
```
### Bước 3:
* sau khi lấy được danh sách user cần phải update thực hiện chạy lệnh xóa quyền
```
REVOKE REPLICATION SLAVE ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2>
```
## **5.8**
tương tự 5.2 thay File_priv bằng Create_user_priv
### Bước 3 :
```
REVOKE REPLICATION SLAVE ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2>
```
## **5.9**
Giống 5.1
## 1 list querry check
* sudo service mysql status
* mysql --user=<user> mysql -p<pass>
* Tạo user : CREATE USER 'test3'@'%' IDENTIFIED BY '<password>';
* show list user : select User, Select_priv, Create_priv, Insert_priv, Update_priv, Delete_priv, Drop_priv, File_priv, Super_priv from mysql.user;
* add quyền cho user : GRANT CREATE, SELECT ON *.* TO 'newuser'@'%';
* Xóa quyền cho user : REVOKE SELECT ON *.* FROM 'test'@'%';