SECURITY PoC — NO AUTH
CDN bypass demo: stream served without an auth header
Princess Assassin 47 — Episodes (50 of 50)
EP 1Princess Assassin
EP 2Princess Assassin 2
EP 3Princess Assassin 3
EP 4Princess Assassin 4
EP 5Princess Assassin 5
EP 6Princess Assassin 6
EP 7Princess Assassin 7
EP 8Princess Assassin 8
EP 9Princess Assassin 9
EP 10Princess Assassin 10
EP 11Princess Assassin 11
EP 12Princess Assassin 12
EP 13Princess Assassin 13
EP 14Princess Assassin 14
EP 15Princess Assassin 15
EP 16Princess Assassin 16
EP 17Princess Assassin 17
EP 18Princess Assassin 18
EP 19Princess Assassin 19
EP 20Princess Assassin 20
EP 21Princess Assassin 21
EP 22Princess Assassin 22
EP 23Princess Assassin 23
EP 24Princess Assassin 24
EP 25Princess Assassin 25
EP 26Princess Assassin 26
EP 27Princess Assassin 27
EP 28Princess Assassin 28
EP 29Princess Assassin 29
EP 30Princess Assassin 30
EP 31Princess Assassin 31
EP 32Princess Assassin 32
EP 33Princess Assassin 33
EP 34Princess Assassin 34
EP 35Princess Assassin 35
EP 36Princess Assassin 36
EP 37Princess Assassin 37
EP 38Princess Assassin 38
EP 39Princess Assassin 39
EP 40Princess Assassin 40
EP 41Princess Assassin 41
EP 42Princess Assassin 42
EP 43Princess Assassin 43
EP 44Princess Assassin 44
EP 45Princess Assassin 45
EP 46Princess Assassin 46
EP 47Princess Assassin 47
EP 48Princess Assassin 48
EP 49Princess Assassin 49
EP 50Princess Assassin 50
CDN bypass demonstration
The API returned
playingUrl for Princess Assassin 47
with issubscriber: false and user_access: deny.
The video above plays from Munowatch's own CDN with
zero authentication.
Security research evidence Inspect entitlement results, CDN URLs, and the raw API response Access control failed
API response evidence
Endpoint called
GET /api/preview/v2/45266/0
User ID used
0 (no user / not logged in)
JWT used
Expired Feb 2024 (extracted from APK)
issubscriber
false
user_access
deny
paid_for
YES (premium content)
substatus
EXPIRED
serverhost
55
video_name
Princess_Assassin_47.mp4
playingUrl returned
YES — URL in response
API playingUrl value
https://munowatch.co/clips/ELI.mp4
CDN demo stream
https://nkuba.b-cdn.net/cleve48/cfr/In.The.Grey.mp4
Finding: The server sets user_access=deny and
issubscriber=false but still returns playingUrl in the
same response. Subscription is enforced client-side only — any caller with
the expired APK JWT can obtain stream URLs without a subscription.
Munowatch CDN (b-cdn.net) serves content with no auth required
(direct HTTP Range requests succeed with HTTP 206).