Skip to content

Latest commit

 

History

History
206 lines (100 loc) · 15.9 KB

realworld-ctf-2018-final.md

File metadata and controls

206 lines (100 loc) · 15.9 KB

Realworld CTF 2018 - Final

Lời cám ơn

Lời đầu, mình xin được dành tặng những người đồng đội tuyệt vời đã cùng mình tham gia cuộc thi này. Cám ơn @auxy, @nearxxff, @drtychai, @fibonacci cũng như toàn thể thành viên @opentoall

Lời tiếp theo, mình xin phép cám ơn ban tổ chức (Chaitin tech) đã tổ chức cuộc thi tuyệt vời này, cám ơn Baidu vì bữa tiệc tuyệt vời, nhờ đó mình gặp những người bạn mới.

Lời cuối, cám ơn @stypr (r3kapig) vì giải thích web challs dễ hiểu và những câu chuyện #thiphi (hahahaha)...Cám ơn @nneonneo (PPP) vì giải thích pwn challs dễ hiểu, bạn chắc chắn sẽ là một professor, một teacher tuyệt vời (also goodlucks with your Assistants Professor job in 2019)...Cám ơn @TokyoWestern vì giúp mình giải thích một số chỗ khó hiểu, các bạn là một đội rất mạnh và đoàn kết.

Okay, không dông dài nữa, bật headphone lên nghe nhạc và đọc thôi các bạng :3

https://www.youtube.com/watch?v=Va0vs1fhhNI

Ngày 1 (30/12/2018)

Mình tới sân bay Nội Bài, Hà Nội vào khoảng 10 giờ sáng. Đầu tiên mình vào làm thủ tục check-in tại quầy của China Southern Airline, bạn nhân viên khá xinh và dễ thương, thực ra quầy đó chỉ dành cho khách hạng Business, mình đi hạng Economy thì không có đặc quyền đó nhưng do quầy đó đang trống nên bạn ý gọi mình qua làm giúp luôn cho nhanh. Trước khi đi thì mình cũng rất lo lắng về vấn đề hành lý, quá cân rồi hoặc là xách 2 túi lên máy bay có làm sao không (vì mình có vài "kỉ niệm" không được tốt lắm với Vietjet), nhưng hóa ra bay quốc tế lại khá dễ dãi với vấn đề hành lý. Mình cũng khá bất ngờ với dịch vụ của hãng, trước khi bay mình có email hỏi về vấn đề lấy hành lý ra khi transit ở Guangzhou, hãng đã trả lời rất chu đáo, tuy nhiên khi mình ra tới quầy check-in thì hãng lại báo lại lần nữa. Vì tới tận 11h45 mới bay, nên mình phải ngồi chờ khoảng hơn nửa tiếng ở sân bay, trong lúc chờ cũng có mấy bạn nhân viên ra đưa cho Coca uống và xin lỗi vì phải để mình chờ (mà thực ra do mình tới sớm mà :P).

Sân bay Nội Bài

Lên máy bay, các bạn tiếp viên cũng khá dễ thương, nhất là giọng trung quốc con gái dễ thương cực :P Đáng nhẽ hãng này mình sẽ rate 10/10, nhưng vì một lý do nhỏ, họ tưởng mình là người Trung Quốc (thực sự trong suốt chuyến đi đây là điều làm mình bối rối nhất...) nên không có phát Arrival Card (một cái thẻ màu vàng, khai báo thông tin của bạn và nộp lại cho cơ quan Nhập Cảnh khi bạn tới sân bay, chỉ chuyến bay quốc tế thôi nhé, nội địa không cần). Vậy nên bạn nên chủ động hỏi họ trước khi máy bay hạ cánh, vì nhìn người Việt rất giống người Trung Quốc, ngoài ra, bạn cũng có thể lấy một tờ ở chỗ Nhập Cảnh, nhưng sẽ khá bất tiện.

Nhiều chữ quá, thêm vào vài tấm ảnh trên máy bay cho các bạn đọc đỡ ngán vậy :

Cơm gà rim thuốc bắc

Bầu trời Guangzhou...bụi quá

Thời gian transit của mình ở Guangzhou là hơn 2 tiếng, tuy nhiên do ở chỗ Nhập Cảnh đứng xếp hàng đã mất hơn 1 tiếng rồi nên khi mình chạy tới quầy ra sân bay thì chỉ còn đúng 20 phút là máy bay cất cánh (phew). Có lẽ do mình khá may mắn, đáng lý ra là sẽ bị chậm rồi, nhưng máy bay tới sớm 10 phút, thêm vào đó chú cảnh sát ở chỗ Nhập Cảnh cũng không hỏi gì mình, thấy đưa visa ra cứ lẩm bẩm cái gì rồi cho qua luôn, cũng chả hỏi một câu nào...lý do tới cũng không hỏi luôn. Mình thấy mấy người đằng trước, có cả người Việt bị hỏi khá kỹ và mất khoảng tầm 5-10 phút mới được qua. Vậy nên nếu bạn có transit thì mình khuyên nên chọn các chuyến transit từ ít nhất 3 tiếng trở lên để không bị lỡ chuyến bay.

Xếp hàng ra máy bay ở sân bay Guangzhou

Trên máy bay...

Máy bay nội địa khá xịn, có cả sạc điện thoại, tuy nhiên chỉ sử dụng được khi máy bay chưa cất cánh

Do hành lý tới chậm, nên mình phải chờ gần 1 tiếng, nhân tiện cũng xin lỗi mấy bạn nữ ban tổ chức đã phải đợi mình. Mình có gặp đội CyKor lúc ở sân bay, họ cũng tới cùng lúc với mình,...tuy nhiên ban tổ chức lại xếp mình một xe riêng về khách sạn, không được ngồi cùng với họ...bỏ lỡ cơ hội làm quen với những người bạn mới.

Di chuyển từ sân bay Zhengzhou Airport (CGO) về khách sạn JW Marriott Zhengzhou mất khoảng 30 phút, trên đường đi mình khá bất ngờ khi thấy thái độ làm việc của nhân viên soát vé ở đây rất tốt, giơ tay chào và luôn tươi cười, cám ơn tài xế,...etc Khác hẳn so với trạm soát vé ở sân bay Nội Bài...

Ảnh khách sạn mình có chụp bên ngoài nhưng do điện thoại rẻ tiền nên cam xấu...lấy ảnh mạng mọi người thông cảm ạ.

Staff ở khách sạn thân thiện và xinh, nói tiếng Anh khá tốt nên mọi thủ tục cũng nhanh và dễ dàng, bellboy và người trực thang máy thì không biết tiếng Anh nên mình mất kha khá thời gian khi muốn hỏi họ một số việc...Vậy nên theo mình thì khi nhận phòng bạn nên hỏi trực tiếp staff.

Do một người trong nhóm không đi được vì bị trễ visa, và mình là người cuối cùng tới nên mình ở một mình một phòng. Nội thất khá ấm cúng và đầy đủ mọi thứ mình cần. Đặc biệt mình khá thích cái đèn ở bên dưới bàn ngủ, vì mình khá sợ ma, đặc biệt là khi ngủ một mình, nên lúc ngủ luôn phải để cái đèn này bật, tuy nhiên do đèn ở dưới bàn và ánh sáng ấm nên cũng không làm ảnh hưởng giấc ngủ của mình (mình khó ngủ nếu có ánh sáng, nhưng tắt hết đèn lại sợ ma...rip)

Khi mình tới thì ban tổ chức có tặng cho player một vài món quà nhỏ làm kỉ niệm, có cả áo (mình sẽ post sau) nhưng do mình tới muộn, không tham dự được event buổi sáng nên đồng đội đã cầm hộ)

Sau khi cất đồ đạc, mình và đồng đội có xuống Lobby Bar của hotel uống một chút và bàn chiến thuật cho ngày hôm sau. Nhưng bằng cách nào đó, chúng mình chỉ toàn nói về mấy bạn nữ trong ban tổ chức, rip...

Ngày 2 (01/12/2018)

Mình dậy khá sớm, cuộc thi bắt đầu từ 10 giờ nhưng 7 giờ mình đã dậy, tuy nhiên do quên là ban tổ chức cho vào phòng thi trước 1 tiếng để kiểm tra network và set up, xem các thiết bị ở đó nên mình đã...ngủ tiếp, tới tận gần 8 giờ hơn mình mới nhớ ra, lao vội xuống tầng 38 ăn sáng. Và bằng cách nào đó team mình đều quên giờ như nhau ( đãng trí team...rip ). Do vội nên mình không có chụp bữa sáng, đại loại cũng là mấy món của Trung Quốc nhưng nấu theo kiểu Tây, với mấy món của Italy (theo mình biết bếp trưởng lúc nấu cho mình bảo ổng là người Italy...), cũng không có gì đặc biệt lắm. Bọn mình vừa ăn vừa bàn về...mấy bạn nữ trong các team khác...rip (they are actually cute :P). Có lẽ đó cũng là lý do cả nhóm mình (gần 500 thành viên) chỉ có một nữ duy nhất,...

Sau khi ăn xong, bọn mình di chuyển xuống tầng trệt để đi ra hội trường thi đấu, cụ thể là hội trường ZZCICEC, ngay cạnh khách sạn, nhưng nó to và rộng như cái sân bay Nội Bài vậy, đi mỏi cả chân :(

Nhân tiện đây cũng là một trong những địa điểm đáng tới của Trịnh Châu trên Tripadvisor nên mình cũng đỡ một chỗ phải đi thăm hehe

Không chỉ rộng, mà độ an ninh cũng chẳng kém cạnh sân bay nội bài, có quân đội tiến hành rà soát vũ khí, kiểm tra an ninh các thứ các thứ (lý do mình sẽ nói bên dưới sau). Lúc đầu thấy mấy cái này mình cũng khá...run (Dont wanna end up 1 0day = 1 meal in jail...). Dưới đây là hình ảnh mọi người xếp hàng kiểm tra an ninh.

Btw, Zhengzhou là một thành phố công nghiệp, có nhiều nhà máy sản xuất, gia công được đặt tại đây nên bị ô nhiễm không khí, bạn nào tới đây chơi nhất định phải mua hoặc mang theo khẩu trang, mình đứng chờ ngoài trời có khoảng 15 phút thôi mà sau đó hắt hơi, sổ mũi liên tục...(tất nhiên mình cũng khá nhạy cảm với không khí nữa...)

Khi vào thi thì mình bị mấy thím quân đội (hoặc police) chặn lại do không có thẻ dự thi, mình đã được phát từ tối trước đó trong ảnh trên, cứ tưởng rằng lại phải chạy về khách sạn lấy (rip), cũng may tầng một có ban tổ chức đang phát thẻ cho những người tới xem, mình xuống và giải thích với họ một chút, cũng may là đúng bạn nữ hôm qua đón mình ở sân bay, nên liền có được thẻ mới. Thanks you a lot!!!!

Hội trường thi khá fancy, lúc đầu mình còn tưởng vào nhầm phòng thi Dota hay CSGO gì gì... (actually they hacked CSGO in Qualification Round).

Các công ty cũng tranh thủ thời gian cuộc thi quảng cáo sản phẩm của mình

Vài phút trước khi cuộc thi bắt đầu, các đội đang chuẩn bị,mình đã chuẩn bị máy móc xong nên cũng nhìn quanh chụp ảnh chút, khá bất ngờ khi một trong những thử thách lần này có cả việc phải hack vào một chiếc xe...dù rằng qua ảnh render trước khi cuộc thi bắt đầu mình đã đoán được phần nào. Rất may là những ký hiệu nhận dạng hãng xe đã bị ban tổ chức loại bỏ.

Ban tổ chức lên giới thiệu một chút về cuộc thi và tuyên bố khai mạc

Cuộc thi cuối cùng cũng bắt đầu, mình và đồng đội bắt đầu làm bài

R3kapig là đội đầu tiên lên trình diễn, họ demo bài Java RCE, theo mình biết được là họ sử dụng real 0day, tuy nhiên không thành công do vấn đề environment.

Tiếp theo là LC/BC trình diễn bài pwn router sau hơn 4 tiếng thi, đây là router mới của TP-Link, được sử dụng rộng rãi trên thị trường, firmware mới nhất.

Họ thành công, get root con router và redirect được domain realworldctf.com của ban tổ chức

Sau vài tiếng đầu im ắng, màn pwn router của LC/BC làm hội trường nóng lên. 217 cũng vào cuộc với việc giải thành công bài Magic Tunnel trong thời gian ăn trưa.

Lúc này tự dưng ở đâu ra mấy ông police hay quân đội, full armed, baton + khiên, khoảng 1 tiểu đội 20 người cứ diễu hành quanh phòng thi...Hóa ra là chuẩn bị tập dượt vài tiếng sau đó đón lãnh đạo...Lãnh đạo đi thị sát tình hình dân chúng (mình cũng không rõ chức vụ gì, nhưng chắc cốp to bên chính phủ...)

Các CEO giới thiệu sản phẩm của mình với lãnh đạo...

Lãnh đạo đi xem các đội thi đấu

Sau một lúc lãnh đạo thứ 2 mới chịu lộ diện

Swag gang

Hai lãnh đạo bàn đại sự

R3kapig giải được bài flaglab, đây là một bài 0day về RCE trong gitlab. Bài này không phải bản mới nhất của gitlab mà đã được vá 10 ngày trước đây, bản xuất hiện trong cuộc thi là của 10 ngày trước. Demo lỗi này đã được biểu diễn trong một conferrence khoảng 1 tháng trước ở Trung Quốc, đồng đội mình đã tham dự nên vội pm bạn hắn (là diễn giả) để xin payload...Tuy nhiên sau cuộc thi thì mình nhớ là @stypr bảo mình là đội họ sài 0day thật, khác với của BTC.

Tiếp đó là RPISEC trình diễn màn hắc Safari (bản mới nhất), demo khởi chạy calculator.

Sau vài tiếng không xử lý được bài Car - OBD Box, và cảm giác khá rối với cái logic của bài này sau khi đọc tài liệu về CAN, OBD Box II,...etc mình quay ra làm bài Forensic - RWEXT5, một lúc thì cũng hiểu ra được cần phải làm gì, bọn mình đã rất gần với flag...chỉ chỉ đồng đội hướng làm.

Cho tới khi PPP giải được bài này...từ lúc này mọi thứ đều đi sai hướng. Vì quá tự tin vào trực giác bản thân mà mình cho rằng họ không thể reverse được bài này nhanh như vậy, cho nên mình đã nghĩ là có một cách làm khác "think out of the box", hoặc một công cụ nào đó, mình đã lãng phí cả ngày hôm đó và hôm sau nữa...Có lẽ cũng một phần do bị choked gần 6 tiếng bài OBD Box - Car nên mình đã có những lựa chọn sai lầm :( Sorry yaosu Biên...

Phew...kết thúc ngày thứ nhất

Mọi thứ đều ổn, ngoại trừ đồ ăn có hơi nguội...