baby 케이스
코드 분석 후 대소문자를 이용하여 우회가 가능함
youth 케이스
1. sensitive 케이스라서 Shop, sHop, SHOP은 다 다른경로로 인식하게 되므로 /shop에서 해결하는 방법을 구해야함
https://book.hacktricks.xyz/pentesting-web/proxy-waf-protections-bypass
Proxy / WAF Protections Bypass | HackTricks
\x85, \xA0, \x1F, \x1E, \x1D, \x1C, \x0C, \x0B
book.hacktricks.xyz
2. 그 이후에 변형된 형태의 flag를 소스코드에 걸리지 않고 인식시켜야 하는데, 어느 주임님의 힌트를 곰곰히 생각하여 꼭 한글자가 단일글자로 치환되는건가? 라는 질문하에 아래의 사이트를 찾게되었음
https://ind2x.github.io/posts/javascript_toLowerCase()_toUpperCase()_normalize_logic/
Javascript toLowerCase(), toUpperCase() Logical Bypass
Javascript toLowerCase(), toUpperCase()
ind2x.github.io
[223] ß (%C3%9F).toUpperCase() => SS (%53%53)
[304] İ (%C4%B0).toLowerCase() => i̇ (%69%307)
[305] ı (%C4%B1).toUpperCase() => I (%49)
[329] ʼn (%C5%89).toUpperCase() => ʼN (%2bc%4e)
[383] ſ (%C5%BF).toUpperCase() => S (%53)
[496] ǰ (%C7%B0).toUpperCase() => J̌ (%4a%30c)
[7830] ẖ (%E1%BA%96).toUpperCase() => H̱ (%48%331)
[7831] ẗ (%E1%BA%97).toUpperCase() => T̈ (%54%308)
[7832] ẘ (%E1%BA%98).toUpperCase() => W̊ (%57%30a)
[7833] ẙ (%E1%BA%99).toUpperCase() => Y̊ (%59%30a)
[7834] ẚ (%E1%BA%9A).toUpperCase() => Aʾ (%41%2be)
[8490] K (%E2%84%AA).toLowerCase() => k (%6b)
[64256] ff (%EF%AC%80).toUpperCase() => FF (%46%46)
[64257] fi (%EF%AC%81).toUpperCase() => FI (%46%49)
[64258] fl (%EF%AC%82).toUpperCase() => FL (%46%4c)
[64259] ffi (%EF%AC%83).toUpperCase() => FFI (%46%46%49)
[64260] ffl (%EF%AC%84).toUpperCase() => FFL (%46%46%4c)
[64261] ſt (%EF%AC%85).toUpperCase() => ST (%53%54)
[64262] st (%EF%AC%86).toUpperCase() => ST (%53%54)
출처 : https://blog.p6.is/hacktm-ctf-quals-2020/
덕분에 문제 해결 가능하였음
"플~래~그"가 아니라 "플래~그" 였음 ㅎㅎ
데이트하면서도 계속 저 문제가 머릿속을 맴돌았음
'Wargame & CTF' 카테고리의 다른 글
[Dreamhack] Broken Dream Badge (0) | 2024.11.25 |
---|---|
[Dreamhack] Geust Book1,2 (0) | 2024.06.24 |
[Dreamhack] Buffalo Wings (0) | 2024.06.21 |
[Dreamhack] PATCH-1 (0) | 2024.06.17 |
[Dreamhack] NginX-mas (0) | 2024.06.14 |