在 Ubuntu 20.04 LTS 上安裝 WebGoat

OWASP WebGoat 是一個蓄意製造的不安全網站環境,讓我們可以練習平常不容易實作的 Web 應用程式上的弱點。WebGoat 在 Windows、Linux 和 macOS 上都可以執行。以下將記錄在 Linux 上面執行 WebGoat 的過程。

在 WebGoat 的 GitHub 頁面上的提供的安裝方式有四種,這篇文章會用 Docker 的方式來進行

  1. Run using Docker
  2. Standalone
  3. Run from the sources
  4. Run with custom menu

環境說明與事前準備

OS:Ubuntu 20.04 LTS
Docker:Docker Engine – Community 20.10.21

本次用到的程式資訊
WebGoat 的 GitHub 頁面

安裝步驟

先安裝必要的工具,如果已經有的話可以跳過這個步驟

$ sudo apt install git openjdk-17-jdk-headless maven

執行 docker 命令,因為其實 8080 在一些常見工具上還算是常用 port, 為了避免衝突,我們把 port 映射由 8080 和 9090 改成 8081 和 9081。

$ sudo docker run -it -p 127.0.0.1:8081:8080 -p 127.0.0.1:9091:9090 -e Asia/Taipei webgoat/webgoat

當看到訊息 Started StartWebGoat in 1.537 seconds (JVM running for 18.343) 之後,就完成啦!

 

檢視成果

打開瀏覽器並輸入 http://127.0.0.1:8081/WebGoat,就可以看到登入頁面了。

這邊請先幫自己註冊一個帳號並登入。

登入後就可以進入 WebGoat,開始練習了!


在 Ubuntu 20.04 LTS 上運行 Mutillidae2 — 使用 Docker

最近在學習一些資安的東西,順便記錄一下:

OWASP Mutillidae II 是一個內建歷年 OWASP Top 10 漏洞的練習靶機,當我們需要食作滲透測試時,我們就可以架設這樣的練習靶機作為攻擊對象,不要真的去打別人,免得獲得看守所參觀機會。

這類環境安裝的方式有許多種,這邊示範使用 Docker compose 的方式,仰賴前人的力量,比較快樂。 😀

環境說明與事前準備

環境說明:
OS:Ubuntu 20.04 LTS
Docker:Docker Engine – Community 20.10.21 & Docker Compose v2.12.2
另外本次操作是使用雲端主機,而靶機上的服務又限制只能從本機存取,所以安裝後還會有設定 SSH Tunnel 的說明。

本次用到的程式資訊
Mutillidae 的 GitHub
webpwnized/mutillidae-docker (這次下載的是它)
Docker 官網的安裝說明Install Docker Engine on Ubuntu

安裝步驟

我們假設大家已經安裝好 Docker 了,如果還沒的話,可以參考上面的資訊進行。

首先請在你的工作目錄下 clone webpwnized/mutillidae-docker 專案,完成後進入專案資料夾

# git clone https://github.com/webpwnized/mutillidae-docker.git
# cd mutillidae-docker

我們可以查看一下 docker-compose.yml 這個檔案,可以知道作者設計執行 database, database_admin, www, directory, directory_admin 這 5 個 service 來運行整個 Mutillidae2。如果有想要修改 port 映射的話可以直接修改這份文件,不過我們這次按照作者提供的設定就好。

接下來只要執行 docker compose up,就可以運行 Mutillidae2 了。
注意:參考的教學資訊中使用的是 docker-compose 指令,但會遇到找不到指令的問題,不過實測使用 docker compose 指令就可以運行了。

# docker compose up

到這邊如果順利的話,就幾乎安裝完成了!我們可以檢查一下 container 是否運作,並且順便查看我們應該連到哪些 port。
這邊我們可以看到如同 docker-compose.yml 設計的,80 port 會是我們的網站入口,而 81 port 是 phpMyAdmin。

設定 SSH Tunnel

這時候我開心地打開瀏覽器輸入 IP …,诶!怎麼不能連線!

因為 Mutillidae2 只允許從本機存取,而我們這次又是使用沒有 GUI 的主機,所以這邊我們建立一個 SSH Tunnel,來讓我們可以直接連回 Mutillidae2 主機吧!當然,如果你直接在自己的電腦上安裝 Mutillidae2,或者是安裝在有 GUI 的主機上,就可以直接用 http://127.0.0.1/ 瀏覽網頁了。


建立 80 port 與 81 port 映射的 SSH Tunnel 指令如下:

ssh -L 80:127.0.0.1:80 -L 81:127.0.0.1:81 {username}@{host}

The database server appears to be offline.

這時候我們打開首頁的時候會發現,似乎怪怪的,資料庫不見了嗎?!
不緊張,頁面上有一個「Click Here」的連結,勇敢按下去吧!大不了壞了重新安裝。
(抱歉這張截圖遺失了)
之後會出現一個對話框提示繼續,這邊點選「確定」,執行完就完成囉!

檢視成果

到這邊!就已經完成啦,可以暢遊 Mutillidae2。


讓 Chrome 重新顯示網址列中的 www 以及 https:// 字樣 (已失效)

Google Chrome 大約是自 76 版發布以後,竟然在網誌列當中隱藏了 www 和 https:// 的網址片段,例如說我瀏覽了 https://www.writesnow.net,網址列只會顯示 “writesnow.net”。

看起來簡潔不過在某些情況上,尤其是希望正確得到網址資訊的人(像我),其實感到非常不便,所以如果想要取消隱藏這些資訊的話,可以嘗試下面的做法。

Continue Reading


GitLab won’t start – runsv not running.

Gitlab didn’t start after update gitlab-ce and reboot, doing following steps to solve.

Problem

[email protected]:~$ sudo gitlab-ctl start
fail: alertmanager: runsv not running
fail: gitaly: runsv not running
fail: gitlab-monitor: runsv not running
fail: gitlab-workhorse: runsv not running
fail: logrotate: runsv not running
fail: nginx: runsv not running
fail: node-exporter: runsv not running
fail: postgres-exporter: runsv not running
fail: postgresql: runsv not running
fail: prometheus: runsv not running
fail: redis: runsv not running
fail: redis-exporter: runsv not running
fail: registry: runsv not running
fail: sidekiq: runsv not running
fail: unicorn: runsv not running

 

Solution

sudo systemctl start gitlab-runsvdir
then
sudo gitlab-ctl restart
 

Yahooooooo!!


[Linux] 用 mount –bind 掛載資料夾並加入 /etc/fstab

因為原本 Ubuntu 上的sda是一顆256GB的SSD, 而後來空間不足了,又另外掛載了一個RAID上去:

這時候,我們要把原本的備份路徑移動到新的磁區上的某個資料夾,又因為這個資料夾是給 ftp 上傳使用的(有設 chroot),而 vsftpd 是不會理會 symbolic link 的。

於是就使用 mount –bind 來實行。 Continue Reading






[Google Drive] Google Drive 當中查看及管理檔案版本

Google Drive 當中查看及管理檔案版本

Google Drive 當中查看及管理檔案版本

當我們使用Google Drive的雲端空間來儲存/協作我們的工作資料或是作品時,一定會遇到需要修訂、更新檔案版本的情形。而這時候,Google Drive就提供了一項非常好的功能,叫做「管理版本」。 Continue Reading