XSSMaze 점수

XSSMaze는 XSS 탐지 도구를 측정하기 위한, 의도적으로 취약하게 만든 랩입니다. 이 페이지는 Dalfox가 main 이미지(ghcr.io/hahwul/xssmaze:main)를 얼마나 탐지하는지 추적합니다. 아래 수치는 just xssmaze-score가 영문 페이지에 자동 생성한 결과를 그대로 옮긴 것으로, 손으로 매긴 값이 아닙니다.

최신 점수

Detection score
97.8%
1041 / 1064 endpoints detected across 175 categories
dalfox v3.2.2xssmaze v0.3.0generated 2026-09-13
Endpoints
1064
catalogued
Categories
175
test groups
Fully detected
161
categories at 100%
With gaps
14
below 100%

카테고리별 커버리지

175개 중 161개 카테고리가 모든 엔드포인트를 탐지합니다. 차트는 갭이 있는 14개(가장 심한 것부터)를 강조하며, 전체 분석은 표에 있습니다.

jf0/1 · 0.0%
xsleak0/5 · 0.0%
json4/6 · 66.7%
callback3/4 · 75.0%
stored3/4 · 75.0%
postmethod5/6 · 83.3%
storedpat5/6 · 83.3%
modern27/32 · 84.4%
domsink7/8 · 87.5%
bugbounty9/10 · 90.0%
prototype9/10 · 90.0%
sanitizer11/12 · 91.7%
realworld15/16 · 93.8%
waf15/16 · 93.8%
카테고리 엔드포인트 탐지 검증 비율
advanced 6 6 6 100.0%
api 6 6 6 100.0%
apidom 6 6 0 100.0%
ariaattr 6 6 6 100.0%
attr 6 6 6 100.0%
attrctx 6 6 6 100.0%
attrname 4 4 3 100.0%
basic 7 7 7 100.0%
booleanattr 6 6 6 100.0%
browser 5 5 5 100.0%
casemanip 6 6 6 100.0%
chain 6 6 6 100.0%
channel 4 4 4 100.0%
charlimit 6 6 6 100.0%
clientstate 6 6 0 100.0%
clipboard 4 4 4 100.0%
cmspattern 6 6 6 100.0%
codeexec 6 6 4 100.0%
commentinj 6 6 6 100.0%
complexpage 6 6 6 100.0%
condreflect 6 6 6 100.0%
csp 5 5 5 100.0%
cspbypass 6 6 6 100.0%
css 6 6 6 100.0%
csti 5 5 5 100.0%
ctxescape 8 8 8 100.0%
ctxv2 6 6 6 100.0%
ctype 6 6 6 100.0%
customtag 6 6 6 100.0%
dashboard 6 6 6 100.0%
dataattr 6 6 6 100.0%
dataurl 4 4 4 100.0%
dblenc 4 4 4 100.0%
decode 4 4 4 100.0%
dialog 5 5 5 100.0%
dom 38 38 0 100.0%
domctx 6 6 6 100.0%
domsource 7 7 0 100.0%
doublereflect 6 6 6 100.0%
dragdrop 4 4 4 100.0%
ecommerce 6 6 6 100.0%
edge 8 8 7 100.0%
edgefilter 6 6 5 100.0%
email 6 6 6 100.0%
embedctx 6 6 6 100.0%
encmix 6 6 5 100.0%
encoding 8 8 7 100.0%
encodingedge 6 6 5 100.0%
errhandling 6 6 6 100.0%
errpage 6 6 6 100.0%
eventhandler 5 5 4 100.0%
filterchain 8 8 8 100.0%
formaction 4 4 4 100.0%
formelement 6 6 6 100.0%
fragment 6 6 6 100.0%
fwoutput 6 6 6 100.0%
globalattr 6 6 6 100.0%
header 4 4 4 100.0%
headerinj 6 6 6 100.0%
headless 6 6 6 100.0%
hidden 9 9 7 100.0%
history 2 2 2 100.0%
hpp 4 4 4 100.0%
html5 8 8 8 100.0%
htmlunsafe 6 6 1 100.0%
import 6 6 6 100.0%
inattr 6 6 6 100.0%
inframe 4 4 4 100.0%
injs 6 6 6 100.0%
inlinestyle 6 6 6 100.0%
inputtransform 6 6 6 100.0%
jquery 6 6 4 100.0%
jsctx 6 6 6 100.0%
jsescape 6 6 6 100.0%
jsonctx 6 6 6 100.0%
latereflect 6 6 6 100.0%
linkcontext 6 6 6 100.0%
listiteration 6 6 6 100.0%
manifest 1 1 1 100.0%
markdown 6 6 6 100.0%
mathml 3 3 3 100.0%
mediacontext 6 6 6 100.0%
metarefresh 4 4 3 100.0%
microdata 6 6 6 100.0%
misc 6 6 6 100.0%
mixedmethod 6 6 6 100.0%
mobserver 4 4 4 100.0%
multicontext 6 6 6 100.0%
multiline 6 6 6 100.0%
multiparam 6 6 6 100.0%
multipart 4 4 4 100.0%
multipleoutput 6 6 5 100.0%
multireflect 8 8 7 100.0%
multivector 6 6 6 100.0%
mutfilter 6 6 5 100.0%
mxss 5 5 5 100.0%
navsink 6 6 2 100.0%
nestedctx 6 6 6 100.0%
nestedfilter 6 6 6 100.0%
nonce 4 4 4 100.0%
noscript 4 4 3 100.0%
numericcontext 6 6 6 100.0%
obfuscation 6 6 6 100.0%
opener 2 2 2 100.0%
partialencode 6 6 5 100.0%
path 4 4 4 100.0%
pathxss 6 6 6 100.0%
payloadfilt 6 6 5 100.0%
pdiff 6 6 6 100.0%
polyctx 6 6 6 100.0%
polyglot 3 3 3 100.0%
popover 3 3 3 100.0%
post 2 2 2 100.0%
querymethod 5 5 0 100.0%
racecon 4 4 4 100.0%
realworld_input 8 8 7 100.0%
recfilt 6 6 6 100.0%
redirect 4 4 0 100.0%
redirectxss 6 6 6 100.0%
referrer 2 2 0 100.0%
regexbypass 8 8 8 100.0%
regexfilt 6 6 6 100.0%
reparse 5 5 0 100.0%
replacementfilter 6 6 6 100.0%
respheader 6 6 6 100.0%
rsplit 4 4 4 100.0%
rwpattern 6 6 6 100.0%
scanbounty 8 8 8 100.0%
scriptgadget 6 6 6 100.0%
semantictag 6 6 6 100.0%
seoctx 6 6 6 100.0%
service 2 2 2 100.0%
shadow 5 5 5 100.0%
sink 8 8 8 100.0%
slot 4 4 4 100.0%
social 6 6 6 100.0%
specialchar 6 6 6 100.0%
specialtag 8 8 8 100.0%
srcdoc 5 5 4 100.0%
srcset 4 4 4 100.0%
storage 2 2 2 100.0%
stream 3 3 3 100.0%
svg 6 6 6 100.0%
svgctx 6 6 6 100.0%
tablecontext 6 6 6 100.0%
tagattrmix 6 6 6 100.0%
taintflow 8 8 0 100.0%
template 6 6 6 100.0%
timing 6 6 6 100.0%
tplel 4 4 4 100.0%
tplinject 6 6 6 100.0%
truncation 6 6 5 100.0%
trustedtypes 5 5 5 100.0%
unicode 6 6 5 100.0%
url 6 6 6 100.0%
wafv2 6 6 6 100.0%
websocket 7 7 7 100.0%
whitespace 6 6 6 100.0%
worker 4 4 4 100.0%
wrappercontext 6 6 6 100.0%
xmlctx 6 6 6 100.0%
realworld 16 15 12 93.8%
waf 16 15 13 93.8%
sanitizer 12 11 10 91.7%
bugbounty 10 9 9 90.0%
prototype 10 9 9 90.0%
domsink 8 7 0 87.5%
modern 32 27 20 84.4%
postmethod 6 5 5 83.3%
storedpat 6 5 4 83.3%
callback 4 3 3 75.0%
stored 4 3 1 75.0%
json 6 4 4 66.7%
jf 1 0 0 0.0%
xsleak 5 0 0 0.0%
합계 1064 1041 904 97.8%

Generated 2026-09-13T09:06:30Z · image ghcr.io/hahwul/xssmaze:main (ghcr.io/hahwul/xssmaze@sha256:cf0b894287cb09ab2de38eed42ee616515bcb888a77894f4e43502caccb509e4) · run just xssmaze-score to refresh.

방법론

  • 대상: XSSMaze의 /map/json이 반환하는 모든 엔드포인트를, 카탈로그의 type(카테고리)별로 그룹화합니다.
  • 엔드포인트별 스캔: 파라미터 마이닝을 끄고(--skip-mining) --timeout 7, --scan-timeout 40으로 엔드포인트 URL을 스캔합니다. 카탈로그가 선언한 쿼리 파라미터는 모두 URL에 넣고(빠진 것은 임의 값으로 채웁니다), 헤더 주입 지점은 -p <name>:header로 지정하며, POST 본문은 -d로 채웁니다(먼저 폼으로 보내고, 폼 패스에서 아무것도 찾지 못한 경우에만 JSON으로 재시도). 탐색과 반사 검사는 켜 두므로 실제 주입 지점은 Dalfox가 직접 찾고(카탈로그의 파라미터 이름은 참고용입니다), 경로 케이스도 잡힙니다.
  • 탐지됨: Dalfox가 종류에 상관없이(V, R, A) 탐지 결과를 하나 이상 반환하거나 종료 코드 1로 끝나면 엔드포인트가 탐지된 것으로 집계됩니다.
  • 검증됨: Dalfox가 파싱된 DOM에서 페이로드가 실행 가능한 위치에 도달했음을 확인한 하위 집합(탐지 결과 타입 V). 브라우저에서 실행을 관측한 것은 아닙니다. 탐지 모델을 참고하세요.
  • 비율: 카테고리별 및 전체의 detected / endpoints.

각 스냅샷은 이를 생성한 Dalfox 버전과 정확한 XSSMaze 이미지 다이제스트에 고정되며, 둘 다 표 아래에 표시됩니다. 원본 데이터는 docs/data/xssmaze-score.json에 있습니다.

수치 읽기

카테고리 비율이 높으면 Dalfox가 그 싱크를 안정적으로 찾는다는 뜻이고, 낮으면 다음에 손볼 컨텍스트라는 뜻입니다. 스캔마다 이미 아는 엔드포인트를 겨냥하고 마이닝을 건너뛰므로, 이 점수는 파라미터 탐색이 아니라 탐지와 검증 능력을 잽니다. 탐색은 기능 테스트 스위트에서 따로 검사합니다. 점수는 Dalfox와 XSSMaze가 바뀌면 함께 바뀌므로, 표 아래에 적힌 버전과 같이 읽으세요.

ESC