æ å ±åŠçå®å šç¢ºä¿æ¯æŽå£«ïŒSCãç»é²ã»ãã¹ãïŒã®ç§ç®BïŒæ§ã»ååŸåé¡ïŒã§ãWebç³»ã®æ¬¡ã«åºãããã®ãèªèšŒã»APIã»ã¹ããã¢ããªã®åé¡ã§ããJWTãã»ãã·ã§ã³IDãAPIkeyãã¢ããªã«åã蟌ãã éµãªã©ããå©çšè ã誰ã ãšå€æããŠãããããçªãåé¡ããŸãšãŸã£ãŠåºãŠããŸãã
ãã®èšäºã§ã¯ããã®åéã®éå»å3åã䜿ã£ãŠãããªããã®çãã«ãªãã®ãããå顿ã®ã©ã®æã«çç®ããã°çããåºãã®ããã解説ããŸããçãã¯IPAã®è§£çäŸãã€ãŸãããããèšåã¯IPAã®æ¡ç¹è¬è©ã§ç¢ºèªããŠããŸããåæã«ã¯AIïŒClaudeïŒã䜿ã£ãŠããŸãã
ç§ç®Bå šäœã®åºé¡åŸåã¯ãç§ç®Bã®åºé¡åŸåã10åååæããèšäºã«ãŸãšããŠããŸãããã®èšäºã¯ããã®åéå¥ã·ãªãŒãºã®2æ¬ç®ã§ãã1æ¬ç®ã¯Webåé¡ïŒXSSã»CSPã»CSRFïŒã®è§£ãæ¹ã§ãã
çµè«ïŒèªèšŒã»APIåé¡ã¯ã3ã€ã®ççŒç¹ãã§è§£ãã
3åã䞊ã¹ãŠã¿ããšãçãã®æ ¹æ ã«ãªãæã®å Žæã¯ã»ãŒæ±ºãŸã£ãŠããŸããã
- ããµãŒãã¯äœãä¿¡ããŠå©çšè ãæ±ºããŠããããã仿§ããæ¢ããJWTã®ãããã®algããã©ã¡ãŒã¿ã®midãhiddenãã£ãŒã«ãã®sessionIDãªã©ãã¯ã©ã€ã¢ã³ããéã£ãŠããå€ããã®ãŸãŸä¿¡ããŠããç®æãè匱æ§ã«ãªã
- ç§å¯ã®å€ïŒéµã»ããŒã¯ã³ïŒããã©ãã«çœ®ãããã©ããéãããã远ããã¢ããªã®äžãHTTPã®ããããŒãã¡ãŒã«ã®æ¬æã眮ãå Žæãåããã°ãæ»æè ã®åãæ¹ããã®ãŸãŸçãã«ãªã
- IDã»çªå·ã®ãäœãæ¹ãã®æ³šèšãèªããããããå§ãŸãé£çªããå¹Žææ¥ïŒç»é²é ããšæžããŠããã°ãæšæž¬ãããåæã§èšåãäœãããŠãã
JWTãOAuthã®æ·±ãç¥èããã仿§ã®è¡šãšæ³šèšã®äžæãæŸããããç¹æ°ãåããŠããŸããæ¡ç¹è¬è©ã§ããèšåæãããèªãã§ããå ·äœçã«ããšããææãç®ç«ã¡ãŸãã
ãã®èšäºã§äœ¿ãéå»å3å
| å | 顿 | åºãŠããè匱æ§ã»æè¡ | æ¡ç¹è¬è©ã§æ£ççãäœãã£ãèšå |
|---|---|---|---|
| 什å6å¹Žæ¥æ å1 | ãã«ã¹ã±ã¢ãµãŒãã¹ã®API | JWTã®algæ¹ãããã¢ã¯ã»ã¹å¶åŸ¡ã®äžåãã¯ã³ã¿ã€ã ã³ãŒãã®ç·åœãããWAF | èšå2(2)ã»èšå3(1)ãããäœã |
| 什å6å¹Žç§æ å4 | è»¢è·æ¯æŽãµã€ãã®ã»ãã¥ãªãã£èšºæ | ã»ãã·ã§ã³ãã£ã¯ã»ãŒã·ã§ã³ãã¡ãŒã«ããããŒã€ã³ãžã§ã¯ã·ã§ã³ãAPIkeyãHTTPããã㌠| èšå1(5)fã»èšå2gãäœããèšå3ãããäœã |
| 什å7å¹Žæ¥æ å3 | åçããªã³ãã®ã¹ããã¢ã㪠| ã¢ã¯ã»ã¹ããŒã®åã蟌ã¿ããµãŒãèšŒææžã®æ€èšŒäžåã眲åä»ãURLãWebView | èšå1(3)ã»èšå2(3)ãäœã |
什å6å¹Žæ¥æ å1ïŒåé¡PDFïŒïŒJWTã®ãalgããæžãæããŠãªãããŸã
ã¹ããã¢ããªããã¯ã©ãŠãäžã®APIãåŒã³åºããã«ã¹ã±ã¢ãµãŒãã¹ã§ãè匱æ§èšºæã®çµæã«å¯Ÿçãèããåé¡ã§ãã
èšå1ïŒã»ãã·ã§ã³ç®¡çãè¡ããªãæ§è³ªã¯ãã¹ããŒãã¬ã¹ã
çç®ããæïŒ ãRESTful APIã®èšèšååã®äžã€ã«ã»ãã·ã§ã³ç®¡çãè¡ããªããšããæ§è³ªããããã
çãã¯ã¹ããŒãã¬ã¹ã§ãããµãŒãåŽã§ã»ãã·ã§ã³ãæããªãã®ã§ãå©çšè ã®èå¥ã¯ãªã¯ãšã¹ãã«ä»ããŠããJWTã ãã§è¡ãããšã«ãªããŸãããã®åæããåŸã®èšåãã¹ãŠã«ã€ãªãã£ãŠããŸãã
èšå2(1)ïŒ4æ¡ã®ã³ãŒãã¯å¹³åäœç§ã§ç Žãããã
çç®ããæïŒ 衚2ã®ãæ¯åã©ã³ãã ã«çæãããæ°å4æ¡ã®æååããšã衚3ã®ã1ç§éã«10å詊è¡ããç·åœããæ»æãã
4æ¡ã®æ°åã¯10,000éãã§ããå¹³åãããšååã®5,000åã§åœããã®ã§ã5,000å ÷ 10å/ç§ = 500ç§ãè§£çäŸã500ã§ãã衚2ã«ã¯ãçæããŠãã10å以å ããšããæå¹æéãæžãããŠããŸãã500ç§ã¯10åïŒ600ç§ïŒããçãã®ã§ãæéå ã«çªç Žãããå¯èœæ§ãé«ãããšããæµãã§ãã
察çã®è¡š5ã§ã¯ã空æ¬dã«é£ç¶å€±æåæ°ããããå€ãè¶ ãããã¢ã«ãŠã³ããããã¯ããåŠçãå ¥ããããããŠæååXã6æ¡ã«å€ããæ¡ãåºãŠããŸããã詊è¡åæ°ãå¶éããããæ¡æ°ãå¢ãããã®2æ¬ç«ãŠã¯ãç·åœãã察çã®å®çªã§ãã
èšå2(2)ïŒJWTã®äœãæ€èšŒããã°ããã
çç®ããæïŒ ã衚4äžã®âRS256âã®ä»£ããã«âNONEâãæå®ããâuser01âãä»ã®å©çšè IDã«æ¹ããããJWTãéä¿¡ãããšãããæ¹ããããJWTã®æ€èšŒãæåããã
JWTã¯ãããã.ãã€ããŒã.眲åãã®3ã€ã®éšåã§ã§ããŠããŠããããã®algã«çœ²åã®ã¢ã«ãŽãªãºã ãæžãããŠããŸããå³4ã«ã¯ãã©ã€ãã©ãªããJWTå
ã®ãããã«æå®ãããã¢ã«ãŽãªãºã ã«åºã¥ããŠJWTãæ€èšŒããããšãããŸããã€ãŸããæ»æè
ãalgãNONEïŒçœ²åãªãïŒã«æžãæãããšãã©ã€ãã©ãªã¯ã眲åãªãããšããŠæ€èšŒãéããŠããŸããŸãã
è§£çäŸã¯ãæ€èšŒå¯Ÿè±¡ã®ããŒã¿ãJWTãããå ã®algã«æå®ãããå€ãæ€èšŒå 容ãNONEã§ãªãããšãæ€èšŒããã§ãã
æ¡ç¹è¬è©ã§ã¯ããã®èšåã®æ£ççã¯ããäœããæ¢ã«å®è£ ãããŠãã察çãè§£çãããã®ãæ£èŠããããšãããŸããã眲åãæ€èšŒãããã¯å³4ã«ãã§ã«æžãããŠããåŠçã§ããå顿ã®ä»æ§ã«æžããŠããåŠçã®ã©ãã«ç©ŽãããããçããŸãã
èšå2(3)ïŒå©çšè IDã®åãéããé²ã
çç®ããæïŒ 衚3ã®é çª2ããã©ã¡ãŒã¿midã«ä»ã®å©çšè IDãæå®ãããšãä»ã®å©çšè IDã«ã²ãä»ãå©çšè æ å ±ãååŸãæ¹å€ã§ããŠããŸããã
å©çšè
APIã¯ããã©ã¡ãŒã¿midã§æå®ãããå©çšè
ã®æ
å ±ãè¿ããŸããJWTã§æ¬äººç¢ºèªãããŠããŠããmidã«ä»äººã®IDãæžãã°ä»äººã®æ
å ±ãåããŠããŸãç¶æ
ã§ããè§£çäŸã¯ãJWTã«å«ãŸããå©çšè
IDãmidã®å€ãšäžèŽãããã©ãããæ€èšŒããåŠçã§ãã
ãèªèšŒïŒèª°ãïŒããšãèªå¯ïŒãã®äººããã®ããŒã¿ãè§Šã£ãŠãããïŒãã¯å¥ç©ããšããå žåçãªåºé¡ã§ãã
èšå2(4)ïŒèŠèœãšããããã©ã¡ãŒã¿status
衚3ã®é
çª3ã¯ããªã¯ãšã¹ãã«status=paidãåæã«è¿œå ãããšãç¡åå©çšè
ãæåå©çšè
ã«ãªã£ãŠããŸãè匱æ§ã§ãã衚5ã§ã¯ãå®è£
ãæå®ããããã©ã¡ãŒã¿ãæ€èšŒãããå
šãŠå
±éã¢ãžã¥ãŒã«Pã«éä¿¡ããŠããããšãåå ãšããã空æ¬cã®çãã¯å
±éã¢ãžã¥ãŒã«Pã§ãã仿§ã«ãªããã©ã¡ãŒã¿ãåãä»ããŠããŸãåé¡ã¯ãäžè¬ã«ãã¹ã¢ãµã€ã³ã¡ã³ããšåŒã°ããŸãã
èšå3ïŒLog4Shellåã®æ°ããè匱æ§ãšWAF
åŸåã¯ãæ°ãã«å ¬è¡šãããè匱æ§ãžã®å¯Ÿå¿ã§ããè§£çäŸãèŠããšã
- èšå3(1)ïŒè匱æ§ããããã確ãããããã«ããã¹ããµãŒãã®index.htmlãžã®ã¢ã¯ã»ã¹ãèšé²ãã確èªããä»çµã¿ã眮ããå³8ã®æ€èšŒã³ãŒãã§å®è¡ãããã³ãã³ãã¯ããã³ãŒããããšãwget http://ïŒãã¹ããµãŒãïŒ/index.htmlãã§ããã³ãã³ããå®è¡ãããã°ããã¹ããµãŒãã®index.htmlã«ã¢ã¯ã»ã¹ãæ¥ãã®ã§ããããèšé²ããã°è匱æ§ã®æç¡ãåãããŸã
- èšå3(3)ïŒWAFã®ã«ãŒã«ã«æžããã¿ãŒã³ã¯
\W[jJ][nN][dD][iI]\WïŒå€§æåå°æåãæ··ãããjndiãïŒ - èšå3(4)ïŒWAFãã鮿ãã§ã¯ãªããæ€ç¥ãã«ããå©ç¹ã¯èª€æ€ç¥ã«ãã鮿ãé²ãããšãã§ããã代ããã«ã¢ã©ãŒããåä¿¡ãããæ»æãã©ããã粟æ»ãã
æ¡ç¹è¬è©ã§ã¯ãèšå3(1)ã®æ£ççãããäœããå³6ã®æ»æã®æµãã«åã£ãŠããªãè§£çãæ£èŠããããšãããŸããæ£èŠè¡šçŸã®æžãæ¹ã¯ãã³ãŒãåé¡ã®èšäºã§ããŸãšããŠããŸãã
什å6å¹Žç§æ å4ïŒåé¡PDFïŒïŒã»ãã·ã§ã³åºå®ãããAPIã§å€§éã®å人æ å ±ãž
è»¢è·æ¯æŽãµã€ãã®ã»ãã¥ãªãã£èšºæã®åé¡ã§ããäžã€äžã€ã¯å°ããªè匱æ§ãçµã¿åãããŠãWebAPIããæ±è·è ã®å人æ å ±ã倧éã«æãæµããçµã¿ç«ãŠãŸãã
èšå1ïŒã»ãã·ã§ã³ãã£ã¯ã»ãŒã·ã§ã³ã¯ããã°ã€ã³ååŸã§å€ãåãã
çç®ããæïŒ ãformå ã®hiddenãã£ãŒã«ãã§ããsessionIDã®å€ã ãã§ã»ãã·ã§ã³ç®¡çã宿œããŠããããããã衚Bã®ãããã®ç»é¢é·ç§»ã«ãããŠããHTTPã¬ã¹ãã³ã¹äžã®sessionIDã®å€ãåäžã§ãã£ããã
ãã°ã€ã³ã®åã«æãåºãããsessionIDãããã°ã€ã³ããåŸããã®ãŸãŸäœ¿ãããŠããŸããæ»æè ã¯èªåã§æã«å ¥ããsessionIDã被害è ã«äœ¿ããã被害è ããã°ã€ã³ããã®ãåŸ ãŠã°ãåãsessionIDã§ãã°ã€ã³æžã¿ã®ç¶æ ã«å ¥ããŸãããããã»ãã·ã§ã³ãã£ã¯ã»ãŒã·ã§ã³ïŒã»ãã·ã§ã³åºå®ïŒã§ãã
å³Aã®æ»ææé ã®ç©ºæ¬ã¯ãè§£çäŸã§ã¯æ¬¡ã®ãšããã§ãã
| ç©ºæ¬ | è§£çäŸ | æ ¹æ ã«ãªãå Žæ |
|---|---|---|
| b | https://test.â³â³â³.jp/ | 衚1ã®ãç»é¢01, 02ãã®URL |
| c | ã¡ãŒã«åä¿¡è ã«ãããã°ã€ã³ | æé 7ãããå®äºããããšãæåŸ ããŠæ°åéåŸ ã¡ã |
| a | (ã€) | å³3ã§ãç»é¢01ã®ãã°ã€ã³ãã¿ã³ãã02ãžã®é·ç§» |
| d | äœ¿çšæžã¿ã®sessionIDãç¡å¹ã«ããäžã§ãæ°ããsessionIDãçºè¡ | ä¿®æ£æ¹æ³ã®å®çª |
æ¡ç¹è¬è©ã§ã¯ãèšå1(2)ã¯æ£ççãé«ãã£ããšãããŸããã»ãã·ã§ã³åºå®ã®ä»çµã¿ãšããã°ã€ã³æã«IDãæ¯ãçŽãããšãã察çã¯ãåŸç¹æºã«ããŠããããè«ç¹ã§ãã
èšå1(5)ïŒHTTPããããŒã§äœãã§ããã
衚Dã®ç©ºæ¬eã»fã¯ãåºåãããŠããªãã£ãHTTPããããŒã®å¹æã§ããè§£çäŸã¯ã
- eïŒMãµã€ããžã®æ¥ç¶ãHTTPSã«åŒ·å¶ããããšãã§ããïŒHSTSãStrict-Transport-Securityã®å¹æïŒ
- fïŒMãµã€ãã®ã³ã³ãã³ãã«å¯ŸããŠãContent-TypeããããŒã§æå®ããMIMEã¿ã€ãã匷å¶çã«é©çšããããšãã§ããïŒX-Content-Type-Options: nosniffã®å¹æïŒ
æ¡ç¹è¬è©ã§ã¯ãfã®æ£ççãäœãã£ããšãããŸããããããŒåãèŠããã ãã§ãªãããèšå®ãããšäœãèµ·ãããããäžæã§èšããããã«ããŠããå¿ èŠããããŸãã
èšå2ïŒè匱æ§ãçµã¿åãããŠãæ°ä»ãããã«ä¹ã£åã
çç®ããæïŒ å³3ã®æ³š1ãç»é¢09ã§ã¡ãŒã«ã¢ãã¬ã¹ã倿Žããå ŽåâŠå€æŽåã®ã¡ãŒã«ã¢ãã¬ã¹ã«ã確èªçšURLãèšèŒãããã¡ãŒã«(ã)ãéä¿¡ããããšã2.2.2ã®ãã¡ãŒã«(ã)ãabc@example.comã ãã«éä¿¡ãããæ¬æ¥ã®å®å ã§ãã倿Žåã®ã¡ãŒã«ã¢ãã¬ã¹ã«ã¯éä¿¡ãããªãã£ããã
æ®éã«ã¡ãŒã«ã¢ãã¬ã¹ãæžãæãããšã確èªã¡ãŒã«ãæ¬æ¥ã®æ åœè ã«å±ããŠæ°ä»ãããŸããããã§æ»æè ã¯ãã¡ãŒã«ããããŒã€ã³ãžã§ã¯ã·ã§ã³ã䜿ããŸããè§£çäŸã®gã¯ãç»é¢09ã§ãäŒç€Ÿåã«ãå³Cã®abc@example.comãæ»æè ã®ã¡ãŒã«ã¢ãã¬ã¹ã«å€æŽããæååãå ¥åããŠå€æŽãã¿ã³ãã¯ãªãã¯ããã§ãã確èªã¡ãŒã«ãæ»æè ã«ã ãå±ãã®ã§ãæ¬æ¥ã®æ åœè ã¯äœãæ°ä»ããŸããã
ãã®åŸãã¡ãŒã«ã¢ãã¬ã¹ãæ»æè ã®ãã®ã«å€ããŠãã¹ã¯ãŒããåèšå®ããè§£çäŸã®hã«ãããšãããåèšå®åŸã®ãã¹ã¯ãŒããå ¥åããŠãWebAPIããŒã確èªåã¯çºè¡ããããšã§ãWebAPIãã倧éã®æ±è·è 屿§æ å ±ãåããç¶æ ã«ãªããŸããç»é¢05ã»07ã§ãã¹ã¯ãŒãã®å確èªãæ±ããããã®ã§ããã¹ã¯ãŒããç¥ã£ãŠããç¶æ ã«ããŠããå¿ èŠããã£ãããšããç¹ããã€ã³ãã§ãã
æ¡ç¹è¬è©ã§ã¯ãèšå2gã®æ£ççãäœããæ»æã®åŸã®æµãã«åã£ãŠããªãè§£çãæ£èŠããããšãããŸãããã¡ãŒã«ããããŒã€ã³ãžã§ã¯ã·ã§ã³ã§äœãã§ãããããäžè¬è«ã§æžãã®ã§ã¯ãªããå³Dã®æ¬¡ã®æé ïŒã¡ãŒã«ã¢ãã¬ã¹ã®å€æŽïŒã«ã€ãªããæäœãæžãå¿ èŠããããŸãã
èšå3ïŒWebAPIã®è¢«å®³ãæžãã仿§ã®æ¹å
çç®ããæïŒ å³2ã®æ³š1ãæ±è·è ãMãµã€ãã«å©çšè ç»é²ãããå¹Žææ¥ã®8æ¡ã®æ°åã®åŸãã«ãæ¥ããšã«000001ããç»é²é ã«å²ãåœãŠããã6æ¡ã®æ°åãå ããæ°å14æ¡ã®æååããšããä»»æã®æ±è·è IDãæå®ããŠãæ±è·è 屿§æ å ±ãååŸãããã
æ±è·è IDã¯æšæž¬ã§ããããã«ãAPIã¯ä»»æã®æ±è·è IDã§æ å ±ãè¿ããŸããå©çšå¥çŽã§ã¯ãåœè©²äŒæ¥ãžã®ååãã»å¿åã«é¢ãã察å¿ã ãããšç¯å²ã決ããŠããã®ã«ã仿§ããããå®ãããŠããŸãããè§£çäŸã®æ¹åæ¡ã¯ã
- æ±è·è IDãæšæž¬å°é£ãªçææ¹æ³ã«å€ããïŒAPIkeyãçãŸããŠããååãã»å¿åãããæ±è·è ã®æ å ±ã ãã«è¢«å®³ãæããããïŒ
- WebAPIã®ã¢ã¯ã»ã¹å IPã¢ãã¬ã¹ãéå®ãã
- WebAPIã§åããæ±è·è 屿§æ å ±ããå人ãç¹å®ã§ããªããã®ã ãã«ãã
ãªã©ã§ããæ¡ç¹è¬è©ã§ã¯ã被害ã軜æžã§ããªã誀çãæ£èŠããããšãããŸããããªãè¢«å®³ãæžãã®ãããã仿§ã®ã©ããå€ããããããšã»ããã§æžãã®ãã³ãã§ãã
什å7å¹Žæ¥æ å3ïŒåé¡PDFïŒïŒã¢ããªã«åã蟌ãã éµã¯åããã
åçãã¢ããããŒãããŠãã©ãã°ããºã泚æããã¹ããã¢ããªã®åé¡ã§ããJVNïŒJapan Vulnerability NotesïŒã§å ¬è¡šãããŠããã¹ããã¢ããªã®è匱æ§ã顿ã«ããããšåºé¡è¶£æšã«æžãããŠããŸãã
èšå1(1)(2)ïŒã¢ã¯ã»ã¹ããŒãåã2ã€ã®æ¹æ³
çç®ããæïŒ å³5ã®ãã¢ã¯ã»ã¹ããŒãHTTPãªã¯ãšã¹ãã®AuthorizationããããŒã«æå®ããæ¹åŒããšããã¢ã¯ã»ã¹ããŒã¯ãéµé·256ãããã®å ±ééµãšAES-CBCã¢ã«ãŽãªãºã ã§æå·åããFã¢ããªå ã«ãªãœãŒã¹ãšããŠä¿åãããâŠAES-CBCã®å ±ééµåã³åæãã¯ãã«ã¯ãFã¢ããªã®ã³ãŒãäžã«å®æ°ãšããŠå®çŸ©ãããã
- (1) éä¿¡ãçèŽã§ããå ŽåïŒCãµãŒãã¹ã«éãããHTTPãªã¯ãšã¹ãã®AuthorizationããããŒããåãåºã
- (2) ã¢ããªããåãå ŽåïŒFã¢ããªãè§£æããæå·åãããã¢ã¯ã»ã¹ããŒäžŠã³ã«å ±ééµåã³åæãã¯ãã«ãå ¥æããæå·åãããã¢ã¯ã»ã¹ããŒãAES-CBCã§åŸ©å·ãã
æå·åããŠããŠããéµãåãã¢ããªã®äžã«ãããªãå®ããŠããŸãããèšåã¯ãåé¡æã«æžããã眮ãå Žæããã®ãŸãŸãã©ãã°çããåºãäœãã§ãã
èšå1(3)ïŒå šå©çšè ã®åçãããŠã³ããŒãããæ¹æ³
çç®ããæïŒ å³4ã®æ³šèšãânnnnnnnnâã¯æ³šæçªå·ã§ããã00000001ããå§ãŸãå鲿°ã®é£çªã§ãããã
åçã¯ã泚æçªå·.zipããšãããã¡ã€ã«åã§ã¹ãã¬ãŒãžã«çœ®ãããŸããã¢ã¯ã»ã¹ããŒãããã°å šãã¡ã€ã«ãæäœã§ããã®ã§ãè§£çäŸã¯ãã¡ã€ã«åã«å«ãŸããæ³šæçªå·ã00000001ããé ã«å¢ãããŠããŠã³ããŒãã詊è¡ããã§ãã
æ¡ç¹è¬è©ã§ã¯ããã®èšåã®æ£ççã¯äœããæœè±¡çãªè§£çãæ£èŠããããšãããŸãããã¢ã¯ã»ã¹ããŒã䜿ã£ãŠããŠã³ããŒããããã ãã§ã¯è¶³ãããé£çªãšããæ³šèšã䜿ã£ãŠãã©ã®ãã¡ã€ã«åãæå®ããããŸã§æžãå¿ èŠããããŸãã
èšå2(3)ïŒãã¹ãçšã®éä¿¡è§£æããŒã«ã§èšŒææžãšã©ãŒãåºããªãèšå®
è匱æ§1ã¯ãã¢ããªããµãŒãèšŒææžã®æ€èšŒãšã©ãŒãç¡èŠããŠéä¿¡ãç¶ãããšãããã®ã§ãããããçŽããšãéçºäžã«éä¿¡è§£æããŒã«ïŒäžéã§éä¿¡ãèŠããããã·ïŒã䜿ã£ããã¹ããã§ããªããªããŸããè§£çäŸã¯ãéçºçšã®ã¹ããã«éä¿¡è§£æããŒã«ã®ãã©ã€ããŒãèªèšŒå±ã®ã«ãŒãèšŒææžãã€ã³ã¹ããŒã«ããä¿¡é Œèšå®ãè¡ãã§ãã
æ¡ç¹è¬è©ã§ã¯æ£ççãäœããåæ§ã®æ¹æ³ã¯ãããã¯ãŒã¯æ©åšã®TLSã€ã³ã¹ãã¯ã·ã§ã³æ©èœãªã©ã§ãå©çšãããã®ã§çè§£ããŠã»ããããšæžãããŠããŸãããæ€èšŒãç¡å¹ã«ãããã®ã§ã¯ãªããæ€èšŒãéãããã«ä¿¡é ŒããèªèšŒå±ãè¶³ããšããçºæ³ã§ãã
èšå3ïŒçœ²åä»ãURLã¯ãã©ãã§ãäœãã
çç®ããæïŒ å³5ã®æ¹åŒbã®èª¬æã(ii) ã¢ã¯ã»ã¹ããŒãç§å¯éµãšããããšãå³4ã®(ã)ã(ã)ã
眲åä»ãURLã¯ãã¢ã¯ã»ã¹ããŒãç§å¯éµã«ããŠHMAC-SHA256ã§çœ²åãäœããŸããã€ãŸããäœãå Žæã«ã¢ã¯ã»ã¹ããŒãå¿ èŠã§ããã¢ããªã®äžã§äœããšããŸãéµãã¢ããªã«çœ®ãããšã«ãªããŸãã
è§£çäŸã¯(ã)ãã€ãŸãA瀟WebãµãŒããæ³šæçªå·ãæ¡çªããåŸãã¢ããªã«æ³šæçªå·ãéç¥ããåã§ãããµãŒãã§ããã®æ³šæã®ãã¡ã€ã«ã ããã®çœ²åä»ãURLãäœã£ãŠã¢ããªã«æž¡ãã°ãã¢ããªã¯ã¢ã¯ã»ã¹ããŒãæããã«æžã¿ãŸãã
æ¡ç¹è¬è©ã§ã¯ãæ»æè ã«ããè§£æã容æãªã¹ããã¢ããªäžãšããè§£çãæ£èŠããããšãããç§å¯æ å ±ã®åŠçããµãŒãäžã§å®çµãããã®ãåºæ¬ã ãšæžãããŠããŸãã
èšå1(4)ã»èšå4ïŒWebViewã¯ãäœã§ãéãã
çç®ããæïŒ å³8ã®F-URLã®äŸf-app://campaign?url=https://www.a-sha.co.jp/campaign/â¡â¡â¡ãšãå³7ãåŒåºãå
ã®WebããŒãžã®URLã®å
é ã¯âhttps://www.a-sha.co.jpâããã
F-URLã®urlã¯ãšãªãã©ã¡ãŒã¿ã«æžããURLããã¢ããªã¯ãã®ãŸãŸWebViewã§éããŸããéãåã®ãã§ãã¯ã¯ä»æ§ã®ã©ãã«ããããŸããããã®ããèšå1(4)ã®è§£çäŸã«ã¯ãæ»æè
ã®ãã¡ã€ã³ãk-sha.co.jpãšããŠã次ã®URLã䞊ãã§ããŸãã
https://k-sha.co.jp/ïŒãã®ãŸãŸæ»æè ã®ãµã€ãïŒhttps://www.a-sha.co.jp.k-sha.co.jp/ïŒå é ãäžèŽããããã«ãµããã¡ã€ã³ãšããŠä»ãè¶³ãïŒhttps://www.a-sha.co.jp@k-sha.co.jp/ïŒ@ããåã¯ãŠãŒã¶ãŒæ å ±ãšããŠæ±ãããïŒ
äžã®2ã€ã¯ãå³7ã®getToken颿°ã®ãã§ãã¯ãæ«å°Ÿã®/ãå«ãŸãªãå
é äžèŽã§ããããšãçªããŠããŸããæ»æè
ã®ãµã€ãã§èªèšŒããŒã¯ã³ãŸã§åãåããŠããŸã圢ã§ãã
èšå4(1)ã®åé¡ç¹ã¯ãè§£çäŸã§ã¯URLã確èªããææ®µããªãã§ããWebViewã¯ã¢ããªã®ç»é¢ã®äžéšã«ããŒãžã衚瀺ããã ããªã®ã§ããã©ãŠã¶ã®ããã«URLãèŠãŠåœãµã€ãã«æ°ä»ãããšãã§ããŸãããèšå4(2)ã®å¯Ÿçã¯ãWebViewãåŒã³åºãåã«ãURLã®å
é ãhttps://www.a-sha.co.jp/ã§ããããæ€èšŒããã§ããæ«å°Ÿã®/ãŸã§å«ããŠæ¯ã¹ãããšãšãããŒã¯ã³ãæž¡ããšãã§ã¯ãªãããŒãžãéãåã«æ€èšŒããã®ããã€ã³ãã§ãã
3åã«å ±éãããå顿ã®ãããèŠãããã§ãã¯ãªã¹ã
| å顿ã«åºãŠããã | äœã«äœ¿ãã | åºãŠããåé¡ |
|---|---|---|
| ããããã«æå®ãããã¢ã«ãŽãªãºã ã«åºã¥ããŠæ€èšŒããã | ã¯ã©ã€ã¢ã³ããéžãã å€ã§æ€èšŒããŠãã â algæ¹ãã | 什å6å¹Žæ¥ å1 |
| ããã©ã¡ãŒã¿ããã§æå®ãããå©çšè IDã | æ¬äººã®IDãšäžèŽããã確èªããŠããªã â ä»äººã®æ å ±ãååŸ | 什å6å¹Žæ¥ å1ã什å6å¹Žç§ å4 |
| ããããå§ãŸãé£çªããå¹Žææ¥ïŒç»é²é ãã®æ³šèš | IDããã¡ã€ã«åãæšæž¬ããŠç·åœãã | 什å6å¹Žç§ å4ã什å7å¹Žæ¥ å3 |
| ãæ°åãæ¡ãã1ç§éã«ãåã | ç·åœããã®å¹³åæéãèšç® â åæ°å¶éã»æ¡æ°å¢ | 什å6å¹Žæ¥ å1 |
| éµã»ããŒã¯ã³ã®ä¿åå ŽæïŒã¢ããªå ã宿°ãããããŒïŒ | æ»æè ã®ååŸæ¹æ³ããã®ãŸãŸçãã察çã¯ããµãŒãã§åŠçããã | 什å7å¹Žæ¥ å3 |
| ãURLã®å é ãããããšãããã§ãã¯ãURLããã®ãŸãŸéã仿§ | æ«å°Ÿã®/ããªã â ãµããã¡ã€ã³ã@ã§åé¿ãéãåã®ãã§ãã¯ããªã | 什å7å¹Žæ¥ å3 |
| 確èªã¡ãŒã«ã®å®å ã®æ³šèš | 誰ã«å±ãããå€ããã°ãæ°ä»ãããã«ä¹ã£åãã | 什å6å¹Žç§ å4 |
CBTæ¹åŒã®ç§ç®Bã§ã¯ãå顿ã«ããŒã«ãŒãåŒããŸããæ³šèšïŒæ³š1ã»æ³šèšïŒã¯ãšãã«èªã¿é£ã°ããããã®ã§ãIDãçªå·ã®äœãæ¹ãæžãããŠãããå¿ ãè²ãä»ããŠãããšãèšåãè§£ããšãã«æ¢ãããããªããŸãã
æäœéããããç¥èã¯ããã ã
èªèšŒã»APIã»ã¢ããªã®åé¡ã§ãå顿ã«èª¬æããªããŸãŸåæã«ãããŠããç¥èã¯ã次ã®ãããã§ããã
| ç¥è | æŒããããã€ã³ã |
|---|---|
| ã¹ããŒãã¬ã¹ | ãµãŒããã»ãã·ã§ã³ãæããªããèå¥ã¯ãªã¯ãšã¹ãã«ä»ãããŒã¯ã³ã ã |
| JWTã®æ§é | ãããïŒalgïŒã»ãã€ããŒãïŒå©çšè
IDã»æå¹æéïŒã»çœ²åãalgãä¿¡ãããšnoneã§çœ²åãå€ããã |
| èªèšŒãšèªå¯ | æ¬äººç¢ºèªãã§ããŠãããã®äººããã®ããŒã¿ãè§Šã£ãŠãããã¯å¥ã«ç¢ºèªãã |
| ã»ãã·ã§ã³ãã£ã¯ã»ãŒã·ã§ã³ | ãã°ã€ã³æã«ã»ãã·ã§ã³IDãæ¯ãçŽãïŒå€ãIDã¯ç¡å¹ã«ããïŒ |
| HSTSã»nosniff | HTTPSã匷å¶ããïŒContent-Typeã§æå®ããMIMEã¿ã€ãã匷å¶ãã |
| HMACã»çœ²åä»ãURL | ç§å¯éµãæã€åŽã§ããäœããªããã ãããµãŒãã§äœã |
| ãã©ã€ããŒãèªèšŒå± | ã«ãŒãèšŒææžã端æ«ã«å ¥ããŠä¿¡é ŒããããTLSã€ã³ã¹ãã¯ã·ã§ã³ãšåãä»çµã¿ |
Webç³»ã®åºæ¬ïŒXSSã»CSRFã»CSPïŒã¯ãã·ãªãŒãº1æ¬ç®ã®Webåé¡ã®èšäºã«ãŸãšããŠããŸãã
éå»åã®è§£èª¬åç»ãèŠããªã
éå»åã®è§£èª¬åç»ã«ã¯ãUdemyã®è¬åº§ã䜿ã£ãŠããŸããç§ç®Bã®éå»å解説ïŒä»€å7幎ç§ã»ä»€å7幎æ¥ã»ä»€å6幎ç§ïŒãå ¥ã£ãŠããŠããã®èšäºã§æ±ã£ã什å7å¹Žæ¥ å3ãšä»€å6å¹Žç§ å4ãåç»ã§èŠçŽããŸãã
什å8幎床察å¿ïœåèæžã®èè
ãæãã æ
å ±åŠçå®å
šç¢ºä¿æ¯æŽå£« ç§ç®Aã»ç§ç®B察çïŒUdemyïŒ
è¬åº§ã®å
容ãèŠã
ãŸãšã
- èªèšŒã»APIã»ã¢ããªã®åé¡ã¯ãããµãŒããäœãä¿¡ããŠå©çšè ãæ±ºããŠããããã仿§ããæ¢ããšãè匱æ§ã®å Žæãåãã
- JWTã¯ãããã®algãã¯ã©ã€ã¢ã³ãã«éžã°ããªããå©çšè APIã¯JWTã®å©çšè IDãšãã©ã¡ãŒã¿ãäžèŽãããã確èªãã
- ã»ãã·ã§ã³ãã£ã¯ã»ãŒã·ã§ã³ã®å¯Ÿçã¯ãã°ã€ã³æã«ã»ãã·ã§ã³IDãæ¯ãçŽãããš
- ã¢ããªã«çœ®ããéµã¯ãæå·åããŠããŠãåãã¢ããªã«åŸ©å·ã®éµãããã°åããããç§å¯ã®åŠçã¯ãµãŒãã§è¡ã
- 泚èšã«æžãããIDãçªå·ã®äœãæ¹ã¯ãã»ãŒç¢ºå®ã«èšåã§äœ¿ããã
ãã®åéã¯ãç¥èã®éããå顿ã®ä»æ§ãäžæãã€çãããã§å·®ãã€ããŸããè§£ãçŽããšãã¯ãçããèŠããã®ã§ã¯ãªããæ ¹æ ã«ãªã£ãæãã©ãã«ãã£ããã確èªãããšãåããŠèŠãåé¡ã§ãåãå Žæãæ¢ããããã«ãªããŸãã
ã·ãªãŒãº3æ¬ç®ã§ã¯ããããã¯ãŒã¯ã»ãªã¢ãŒãã¯ãŒã¯ã®åé¡ïŒVPNã»DDoSã»ç¡ç·LANïŒã解説ããŠããŸãã
ãã®åéã®æ»æãšåºæ¬ã®å¯Ÿçã®çµã¿åããã¯ãèãæµãçšã®äžåäžçåç»ïŒæ»æãšå¯Ÿçã»42åã»YouTubeïŒã§ãè³ã§åŸ©ç¿ã§ããŸãã
é¢é£èšäº
- æ å ±åŠçå®å šç¢ºä¿æ¯æŽå£« ç§ç®BïŒååŸïŒã®åºé¡åŸåãåæïœåºãããåéã©ã³ãã³ã°ãšéå»åãªã³ã¯é
- æ¯æŽå£« ç§ç®BïŒååŸïŒã®Webåé¡ã®è§£ãæ¹ïœXSSã»CSPã»CSRF
- æ¯æŽå£« ç§ç®BïŒååŸïŒã®ã³ãŒãåé¡ãå šéšè§£èª¬ïœãæžããã¯Javaã»SQLã»æ£èŠè¡šçŸã®å®çªã ã
- æ å ±åŠçå®å šç¢ºä¿æ¯æŽå£«ïŒç»é²ã»ãã¹ãïŒã«ææŠããŸããåŠç¿èšç»ã»ææã
- æ¯æŽå£« ç§ç®BïŒååŸïŒã®ã€ã³ã·ãã³ã察å¿ã»ãã°è§£æåé¡ã®è§£ãæ¹ïœãã°ã¯ãæç³»åã«äžŠã¹ãŠã2ã€ã®ãã°ã§è£ä»ããããéå»å2åã§è§£èª¬ã
åèã«ããæ å ±
- IPA éå»åé¡ïŒä»€å6å¹ŽåºŠæ¥æ ååŸ å1ã什å6å¹ŽåºŠç§æ ååŸ å4ã什å7å¹ŽåºŠæ¥æ ååŸ å3ã®åé¡ã»è§£çäŸã»æ¡ç¹è¬è©ïŒ
- JVNïŒJapan Vulnerability NotesïŒ
ãã®èšäºã§åŒçšããå顿ã»è§£çäŸã¯ãIPAãå ¬éããŠããéå»åé¡ããã®æç²ã§ããäžéšãçç¥ã»èŠçŽãã衚ã®åœ¢ã«æŽçããŠããŸãã
ãããã質åïŒFAQïŒ
Q1. æ¯æŽå£«ã®ç§ç®Bã§ãJWTãAPIã®åé¡ã¯åºãŸããïŒ
åºãŠããŸãã什å6å¹Žæ¥æ å1ã¯APIã»ãã¥ãªãã£ãäž»é¡ã§ãJWTã®ãããã®algãNONEã«æžãæããŠä»ã®å©çšè ã«ãªãããŸãè匱æ§ãšããã©ã¡ãŒã¿ã§æå®ããå©çšè IDãšJWTã®å©çšè IDãäžèŽãããã確èªããŠããªãè匱æ§ãåãããŸããã什å6å¹Žç§æ å4ã§ããæ±äººäŒæ¥åãã®WebAPIãšAPIkeyã顿ã«ãªã£ãŠããŸãã
Q2. JWTã®æ¹ãã察çã¯ãäœãçããã°ããã§ããïŒ
什å6å¹Žæ¥æ å1ã®è§£çäŸã¯ãJWTãããå ã®algã«æå®ãããå€ãããNONEã§ãªãããšããæ€èšŒãããã§ããæ¡ç¹è¬è©ã§ã¯ãæ¢ã«å®è£ ãããŠãã察çïŒçœ²åã®æ€èšŒãªã©ïŒãçãã誀çãæ£èŠããããšãããŸããå顿ã®ä»æ§ã®ã©ãã«ç©Žãããããçããã®ããã€ã³ãã§ãã
Q3. ã»ãã·ã§ã³ãã£ã¯ã»ãŒã·ã§ã³ã®å¯Ÿçã¯äœã§ããïŒ
ãã°ã€ã³æã«ãäœ¿çšæžã¿ã®ã»ãã·ã§ã³IDãç¡å¹ã«ããäžã§ãæ°ããã»ãã·ã§ã³IDãçºè¡ããããšã§ãã什å6å¹Žç§æ å4ã®è§£çäŸããã®å 容ã§ãæ¡ç¹è¬è©ã§ã¯ãã®èšåã®æ£ççã¯é«ãã£ããšãããŸãã
Q4. ã¹ããã¢ããªã®åé¡ã§ã¯ãäœã«æ³šæããŠèªãã°ããã§ããïŒ
éµãããŒã¯ã³ããã©ãã«çœ®ãããã©ããéãããã远ããŸãã什å7å¹Žæ¥æ å3ã§ã¯ãã¢ããªå ã«æå·åããŠä¿åããã¢ã¯ã»ã¹ããŒãã埩å·çšã®å ±ééµãåãã¢ããªã®äžã«ããããååŸã§ããããšããèšå®ã§ããã眲åä»ãURLãã©ãã§çæãããã®èšåã§ã¯ãã¹ããã¢ããªäžãšçãã誀çãæ£èŠãããç§å¯æ å ±ã®åŠçã¯ãµãŒãäžã§å®çµãããã®ãåºæ¬ã ãšæ¡ç¹è¬è©ã«æžãããŠããŸãã