---
# System prepended metadata

title: PicoCTF SQL Direct

---

## 首頁(其他picoCTF writeup)
https://hackmd.io/@sunfrancis12/ry_LLAgp3

作者: [台中教育大學 白帽社](https://hackmd.io/@ntcuhack/index) -sunfrancis12
## SQL Direct

我們可以透過這題來理解mySQL是如何在終端機運作的(psql的用法)

我們需要先安裝以下兩個套件
```
sudo apt-get install postgresql-client
sudo apt-get install postgresql-client-common
```

按照題目的指示登入


![](https://hackmd.io/_uploads/HJeuYuj62.png)

我們來學習一些基本的指令吧
```
\l    #所有資料庫
\c    #連線到資料庫
\d OR \dt   #看有當前資料庫所有表格(Table)
\d+    #查看當前資料庫所有表格的詳細資訊
\q    #退出
```
> 引用自:https://lianankuan.medium.com/%E5%AD%B8%E7%BF%92postgresql-rails%E7%9A%84%E9%96%8B%E7%99%BC%E7%BF%92%E6%85%A3-262be0e26b99

連線至...資料庫(命令列開頭是指當前的資料庫):

![](https://hackmd.io/_uploads/HkmehOsT2.png)

查看所有的資料庫:

![](https://hackmd.io/_uploads/HkXE9dian.png)

查看當前資料庫的所有表格:

![](https://hackmd.io/_uploads/Syn_9Os62.png)

查看當前資料庫的所有表格的詳細資訊:

![](https://hackmd.io/_uploads/SJzYsdsT3.png)


### 在開始之前，我們要先知道SQL的查詢會回傳一個TABLE

SQL的基本查詢語法架構大致如下
```
SELECT {Columns列} FROM {TABLE表格} (WHRER {條件});
```

我們目前知道有一個`DATABASE`叫pico，其下有一個`TABLE`叫flags，我們可以用以下指令印出表格的所有`row`(欄位)

```
SELECT * FROM flags;
```

![](https://hackmd.io/_uploads/BJqvsuj6n.png)


> 想認識更多可以看:https://pjchender.dev/database/psql-cli/
