27 Apr 2023
資料庫提交數據的三種類型:
顯式提交 (Explicit Commit)
用 COMMIT
命令完成提交,例如:
select * from dept;
commit;
隱式提交 (Implicit Commit)
運行某些指令之後資料庫自動完成,不需要再做 COMMIT
,例如:
CREATE TABLE Persons (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
隱式提交的指令有:CREATE TABLE
、DROP TABLE
等,這些指令各自被視作單一的 transaction,因此執行完畢做 ROLLBACK
不會有用。更多可以參考 Statements That Cause an Implicit Commit。
自動提交 (Autocommit)
如果 autocommit mode 開啟的話,每一個 SQL statement 都將被視作單一的 transaction,不需要 COMMIT
,會自動完成提交。MySQL 默認 autocommit mode 開啟。
可以用 SELECT @@autocommit
指令確認 autocommit mode 是否開啟,是的話值為 1。
Reference
autocommit, Commit, and Rollback
MYSQL的COMMIT和ROLLBACK使用讲解
26 Apr 2023
常見的 Structured Query Language 指令有 Create, Drop, Insert 等,而這些指令又可以細分為幾個種類:
DDL (Data Definition Language)
這個種類的指令大多用來建立、變更、刪除資料庫物件的結構或 schema,例如:
- CREATE
- DROP
- ALTAR
- TRUNCATE
- RENAME
DQL – Data Query Language
一言以蔽之,用來查詢資料庫的資料,例如 SELECT。
DML – Data Manipulation Language
操作和修改資料庫中的資料,常見的有:
- INSERT
- UPDATE
- DELETE
DCL – Data Control Language
與權限、授權、許可相關的指令,例如:
- GRANT
- REVOKE
TCL – Transaction Control Language
與控制、管理事務(Transaction)相關,例如:
- BEGIN
- COMMIT
- ROLLBACK
Reference
26 Apr 2023
PicoCTF 2023 / Web Exploitation / XXE
Description
The web project was rushed and no security assessment was done. Can you read the /etc/passwd file?
Writeup
- Launch Instance 後,進入網站點選其中一項 detail,發現網站 POST 網址 http://saturn.picoctf.net:56031/data,要求酬載如下:
<?xml version="1.0" encoding="UTF-8"?><data><ID>1</ID></data>
- 所以我們的 xml injection 如下:
Headers
Body

- 將請求送出後,可以在 response 找到我們的 flag!

25 Apr 2023
我的 mysql 版本: mysql Ver 8.0.32 for macos13 on x86_64 (MySQL Community Server - GPL)
在還記得原本密碼的情況下改密碼:
mysql -u root -p
輸入原本的密碼
- 進入 MySQL CLI 後輸入:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';