Tổng hợp Write-up cuộc thi An ninh mạng WhiteHat Challenge 01

Thảo luận trong 'Writeup Play' bắt đầu bởi sunny, 27/02/17, 05:02 PM.

  1. sunny

    sunny Điều hành viên Thành viên BQT

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,888
    Đã được thích: 861
    Điểm thành tích:
    113
    Write-up các bài thi của WhiteHat Challenge 01 sẽ được tổng hợp tại đây, rất mong các đội chơi chia sẻ đáp án các bài thi để các bạn thành viên tham khảo.

    writeup.jpg

    Các bài thi trong WhiteHat Challenge 01: (chi tiết writeup ở các post bên dưới)
    1. For001
    2. Crypto002
    3. Crypto001
    4. Mics001
    5. Pwn001
    6. Re002
    7. Pwn002
    8. Re001
    9. Web001
    10. Web002

    WhiteHat Challenge 01 - cuộc thi Capture The Flag mới của WhiteHat, được tổ chức định kỳ hàng tháng dành cho những người mới bắt đầu học tập, nghiên cứu về An ninh mạng như những quản trị hệ thống muốn tìm hiểu về An ninh mạng, sinh viên các trường kỹ thuật...
    • Hình thức thi: Thi theo đội, số lượng thành viên không giới hạn
    • Thời gian tổ chức: Từ 09:00 đến 17:00 thứ 7 ngày 25/02/2017
    • Môi trường thi: Hệ thống WhiteHat WarGame
    • Nội dung thi: CTF Jeopardy bao gồm: Reverse, Pwnable, Web, Crypto, Forensic.
    • Thể lệ cuộc thi: Tham khảo tại thông báo Thể lệ cuộc thi An ninh mạng WhiteHat Challenge 01
    Giải thưởng:
    • Giải Nhất : MeePwn (Việt Nam) - 5 triệu đồng
    • Giải Nhì : NightSt0rm (Việt Nam) - 2 triệu đồng
    • Giải Ba : 0xc500 (Việt Nam) - 1 triệu đồng
     
    Chỉnh sửa cuối: 26/03/17, 10:03 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  2. sunny

    sunny Điều hành viên Thành viên BQT

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,888
    Đã được thích: 861
    Điểm thành tích:
    113
    Write-up bài For001 - Tác giả: noraj
    Link: http://rawsec.ml/en/WhiteHat-Challen...001-Forensics/

    ________________________________
    CTF

    Description
    Can you find the secret in this image? Download file here:

    http://material.wargame.whitehat.vn/...a3df14be5d.zip

    Submit WhiteHat{sha1(flag)}
    Solution


    The zip contain an image: LSB.png.

    Let's try to retrive something with LSB attack, I found a Microsoft Word 2007 document.

    Trying to open it with LibreOffice said me that the document is corrupted.

    As it is only an archive I extrated it with 7z.

    I then open the document.xml and I found that:





    1 . .- ... -.-- ..-. --- .-. . -. ... .. -.-.

    It is morse. So I used http://www.dcode.fr/morse-code to decode the message.

    That gave me EASYFORENSIC.





    1
    2
    3
    4
    $ printf %s 'EASYFORENSIC' | sha1sum
    ffed6da75c3296041fc52abc75298e120c350917 -
    $ printf %s 'easyforensic' | sha1sum
    1f0aa393d3e5369f391c35a793bcf1178b8299a0 -

    So flag is WhiteHat{1f0aa393d3e5369f391c35a793bcf1178b8299a0} .

    Note: Again, this is stegano not digital forencis...
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  3. sunny

    sunny Điều hành viên Thành viên BQT

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,888
    Đã được thích: 861
    Điểm thành tích:
    113
    [WRITE UP] WHITEHAT CHALLENGE 1 – WEB002 - JoseBeo

    Link: https://mrdoan1996.wordpress.com/201...enge-1-web002/
    _____________________

    Đã lâu rồi mình chưa viết lại write up ctf mà chỉ tập luyện cùng những đàn anh trong team MeePwn. Bây giờ mấy anh đi thi cả rồi mình mới mạn phép write up một bài khá dễ ở giải WhiteHat Challenge 1 – 2017

    Hien is creating an e-commerce website. However, without deep knowledge about the CMS used, Hien leaves a critical vulnerability in his website. Can you help him to find it out?

    Website URL: http://lab11.wargame.whitehat.vn/015...0e301973c99d40


    [​IMG]




    Thoạt nhìn, bài này khá rối với một loại các trang đủ các loại địa chỉ. Nhìn là thấy khó nuốt nên mình chỉ nghỉ đến SQL injection thôi, còn ngoài ra các lỗi khác mình “không dám” nghĩ đến. Đầu tiên thì fuzz nó trước đã.

    Xem file robots.txt có gì nào.

    Mã:
     # If the Joomla site is installed within a folder such as at # e.g. www.example.com/joomla/ the robots.txt file MUST be # moved to the site root at e.g. www.example.com/robots.txt # AND the joomla folder name MUST be prefixed to the disallowed # path, e.g. the Disallow rule for the /administrator/ folder # MUST be changed to read Disallow: /joomla/administrator/ # # For more information about the robots.txt standard, see: # http://www.robotstxt.org/orig.html # # For syntax checking, see: # http://tool.motoricerca.info/robots-checker.phtml  User-agent: * Disallow: /administrator/ Disallow: /bin/ Disallow: /cache/ Disallow: /cli/ Disallow: /components/ Disallow: /includes/ Disallow: /installation/ Disallow: /language/ Disallow: /layouts/ Disallow: /libraries/ Disallow: /logs/ Disallow: /media/ Disallow: /modules/ Disallow: /plugins/ Disallow: /templates/ Disallow: /tmp/ 
    Ta thấy có trang administrator => vào xem.

    Chẳng có gì ngoài form đăng nhập khá khó để inject => bỏ qua.

    Dựa vào file robots.txt mình biết trang web được viết trên framework joomla.

    Mình google để tìm cách xem version của joomla hiện đang xài. bằng cách xem nội dung file:
    Mã:
    [joomlasite]/administrator/language/en-GB/en-GB.xml

    [​IMG]


    Trang web của chúng ta có version là 3.2.3 => google xem joomla 3.2.3 có lỗi nào không.

    Sau 2h ngồi đọc đủ loại vulnerability liên quan thì mình đã tìm được.

    https://www.exploit-db.com/exploits/38534/

    Cơ mà đời không như mơ, chạy tool exploit chẳng được kết quả gì cả. Mình quyết định xem code exploit người ta làm sao thì thấy một đoạn payload rất đơn giản:
    Mã:
    "/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=(select+1+from+(select+count(*),+concat((select+(select+concat(password))+from+icalab_users+LIMIT+0,1),floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a)"; 
    Như vậy có thể biết được url bị lỗi nằm ở:
    Mã:
    "http://lab11.wargame.whitehat.vn/0153e4391b209fd6c30e301973c99d40/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=" 
    và có thể inject ở biến list[select]

    Nhưng vì đời không như mơ nên chắc là payload của tool có lỗi gì đấy. Mình quyết định sử dụng sqlmap (vì mình khá lười query tay hay code tool). Bật kali linux lên

    Sử dụng sqlmap với lệnh sau:
    Mã:
    sqlmap -u "http://lab11.wargame.whitehat.vn/0153e4391b209fd6c30e301973c99d40/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=" -p list[select] 

    [​IMG]


    Vâng, kết quả là MySQL với Error base => tìm database của nó thôi


    [​IMG]


    Chúng ta có database rồi, việc còn lại là chạy tool tìm tables, columns và dump column muốn xem ra thôi.

    Ez flag: sqli_in_old_version_of_joomla
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  4. dkfalse

    dkfalse W-------

    Tham gia: 05/01/15, 03:01 PM
    Bài viết: 2
    Đã được thích: 0
    Điểm thành tích:
    1
    Bài for100 làm sao để tách các file lẫn lộn ra ạ. Em thử làm mà không được. Có video thì tốt quá. :(
    Cảm ơn hai anh sunnyHD67. Em đã làm được bài for100 rồi ạ. :D
     
    Last edited by a moderator: 01/03/17, 12:03 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  5. HD67

    HD67 W-------

    Tham gia: 19/08/14, 06:08 PM
    Bài viết: 2
    Đã được thích: 0
    Điểm thành tích:
    1
    For100 bạn có thể search keyword LSB Steganography, trong bài này có thể dùng tool StegSolve để giải.


    [​IMG]
    image_7592.jpg

    Flag.jpg

    Flag.jpg
     
    Last edited by a moderator: 01/03/17, 11:03 AM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  6. nQg

    nQg W-------

    Tham gia: 05/01/15, 03:01 PM
    Bài viết: 25
    Đã được thích: 14
    Điểm thành tích:
    18
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  7. nQg

    nQg W-------

    Tham gia: 05/01/15, 03:01 PM
    Bài viết: 25
    Đã được thích: 14
    Điểm thành tích:
    18
    Write-up Crypto001 from MeePwn:

    Đề đã cho biết: "The text message has been encrypted using one time pad algorithm. Let decrypt it."
    Với dạng bài này thì chúng ta có nhiều cách giải quyết, chủ yếu dựa vào tính chất của phép xor: A ^ B = C => A ^ C = B; B ^ C = A

    Để giải bài này một cách đơn giản, xin giới thiệu với các bạn một tool khá hay, cribdrag:
    [​IMG]



    Bây giờ chúng ta chỉ việc đoán xem nội dung của "key" và "message" là gì, việc này cũng không có gì phức tạp. "message" có thể chứa các keywords "nhạy cảm" như: "Flag", "flag", "flag is ", "flag is: ", "WhiteHat",....; còn "key" thì cũng có thể chứa "I", "you", "and", "not", " the ",....

    [​IMG]


    Tiếp tục đoán như vậy, cuối cùng ta được "key" là "I can calculate the motion of heavenly bodies" (có thể còn nữa, nhưng chỉ cần chừng này là đủ để có flag rồi)
    [​IMG]
    Screenshot 2017-03-01 at 13.27.07.jpg

    Screenshot 2017-03-01 at 13.32.45.jpg

    Screenshot 2017-03-01 at 13.37.16.jpg
     
    Last edited by a moderator: 01/03/17, 01:03 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  8. nQg

    nQg W-------

    Tham gia: 05/01/15, 03:01 PM
    Bài viết: 25
    Đã được thích: 14
    Điểm thành tích:
    18
    Write-up Crypto002 from MeePwn:

    Đề cho một file python, và một file đã bị encode bằng thuật toán trong file python đó. Theo như mô tả thì file gốc là file PNG.
    "This PNG image has been encrypted. Let recover it. "

    Nội dung trong file encode cũng không có gì quá phức tạp, chỉ là đọc từng 8 bytes một trong file ảnh, xor với một key cho trước, và ghi lại vào file PNG mới.

    Như đã nói ở write-up trước, vì tính chất của phép xor: A ^ B = C => A ^ C = B; B ^ C = A nên chúng ta hoàn toàn có thể có được key dùng để xor, bằng cách dùng 8 bytes đầu tiên trong file đã encode, xor với 8 bytes đầu của một file PNG bất kỳ (vì trong cấu trúc file PNG 8 bytes header đầu tiên luôn luôn không đổi, tham khảo thêm ở http://www.libpng.org/pub/png/spec/1.2/PNG-Structure.html)

    Code một chút để lấy key: [​IMG]

    Dùng key thay vào ngay code đề cho, sửa lại vị trí của file input và output, chúng ta có flag.

    [​IMG]
    Screenshot 2017-03-01 at 14.06.33.jpg

    images.jpg
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  9. nQg

    nQg W-------

    Tham gia: 05/01/15, 03:01 PM
    Bài viết: 25
    Đã được thích: 14
    Điểm thành tích:
    18
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  10. ROLLDOCK

    ROLLDOCK W-------

    Tham gia: 03/02/16, 10:02 AM
    Bài viết: 16
    Đã được thích: 0
    Điểm thành tích:
    6
    sao em ko mở đc file flag ạ. E lưu đoạn hex đó dạng rar hay zip đều ko mở lên đc ạ
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  11. sunny

    sunny Điều hành viên Thành viên BQT

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,888
    Đã được thích: 861
    Điểm thành tích:
    113
    Write-up bài For001 - Tác giả: NGUYỄN VIỆT DŨNG - MEPWN - UIT.RTHN

    ____________________________________


    File của ban tổ chức:

    http://material.wargame.whitehat.vn/...a3df14be5d.zip

    Mình tải cái file này về và giải nén ra thì thấy có dạng ảnh png

    Mở file bằng StegSolve :
    [​IMG]




    Thấy tên ảnh là LSB.png, btc đã lịch sự đưa ra gợi ý rõ ngay từ tên bài, vậy thì dễ rồi:
    [​IMG]




    Ta thấy rõ rang có file Header khá đặc trưng của dòng MS-Office, kệ nó cứ extract data ra đã rồi tính : save bin

    Lưu file đó với tên extract.docx, sau đó mở file
    [​IMG]




    LUL, mấy cái đúp đúp nháy nháy => Mã Morse

    Decode mã Morse ra, ta có dòng :

    EASYFORENSIC => Sha1 là ra flag thôi !

    Bạn mình cũng đã làm ra bước này, nhưng cu cậu không sao submit được, mình đợi đến 15p thì cu cậu bảo đi đâu đó.

    Cuối cùng thì mình sub, đơn giản là lowercase chúng nó xuống rồi mới Sha1 (Cái này có 1 file khá đặc sắc đã nhắc mình)

    WhiteHat{1f0aa393d3e5369f391c35a793bcf1178b8299a0}
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  12. whf

    whf Super Moderator Thành viên BQT

    Tham gia: 06/07/13, 03:07 AM
    Bài viết: 1,078
    Đã được thích: 719
    Điểm thành tích:
    113
    ROLLDOCK: bạn lưu dữ liệu ra dưới dạng file .docx và mở bằng Word hoặc mở bằng 7-zip. Nếu mở bằng 7-zip thì bạn phải tìm và mở file document.xml để thấy đoạn Morse code trong đó.
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  13. sunny

    sunny Điều hành viên Thành viên BQT

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,888
    Đã được thích: 861
    Điểm thành tích:
    113
    Write-up bài Re002 - Tác giả: MEPWN

    _____________________________________

    Đặt breakpoint debug ở hàm này

    [​IMG]



    Thuật toán hàm này

    [​IMG]
















    Thật ra nó là Caesar vs key = (input[0]-‘A’) + (input-input[i-1]) + … + (input[n]-input[n-1])

    Ta chỉ cần giải mã Caesar với chuỗi “NMOVUMUUHUGCMOTOGCNUEY” và kiểm tra chuỗi input nào có kí tự cuối là “E” thì chính là cái ta cần

    [​IMG]




    Password là “TSUBASAANAMISUZUMITAKE”
     
    Last edited by a moderator: 02/03/17, 11:03 AM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    likehack thích bài này.
  14. likehack

    likehack Active Member

    Tham gia: 08/01/17, 09:01 PM
    Bài viết: 32
    Đã được thích: 3
    Điểm thành tích:
    8
    Write-up bài Re001

    Dạng bài này mình không quan tâm nó tính cái gì trên giao diện, random cái gì đó lằng nhằng.
    Dịch file jar, vô thấy ngay hàm tính flag
    link video: https://www.youtube.com/watch?v=lQPTFnwI1rc
     
    Last edited by a moderator: 02/03/17, 08:03 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  15. likehack

    likehack Active Member

    Tham gia: 08/01/17, 09:01 PM
    Bài viết: 32
    Đã được thích: 3
    Điểm thành tích:
    8
    update:
    code:
    public static void main(String[] args) {
    Character[] ListChar = { Character.valueOf('a'), Character.valueOf('_'), Character.valueOf('y'), Character.valueOf('l'), Character.valueOf('_'), Character.valueOf('l'), Character.valueOf('a'), Character.valueOf('T'), Character.valueOf('_'), Character.valueOf('T'), Character.valueOf('_'), Character.valueOf('T'), Character.valueOf('e'), Character.valueOf('_'), Character.valueOf('y'), Character.valueOf('e'), Character.valueOf('r'), Character.valueOf('_'), Character.valueOf('S'), Character.valueOf('_'), Character.valueOf('_'), Character.valueOf('l'), Character.valueOf('r'), Character.valueOf('T'), Character.valueOf('F'), Character.valueOf('_'), Character.valueOf('Y'), Character.valueOf('_'), Character.valueOf('l'), Character.valueOf('e'), Character.valueOf('T'), Character.valueOf('T'), Character.valueOf('T'), Character.valueOf('a'), Character.valueOf('r'), Character.valueOf('T'), Character.valueOf('u'), Character.valueOf('A'), Character.valueOf('o') };
    int[] ListPos = { 11, 7, 14, 13, 26, 22, 4, 34, 15, 37, 3, 31, 19, 27, 23, 6, 18, 25, 30, 24, 17, 12, 9, 38, 28, 8, 0, 16, 21, 10, 32, 36, 33, 20, 5, 35, 2, 29, 1 };
    String flag = "";
    Character[] tmpListChar = { Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000'), Character.valueOf('\000') };
    int lenFlag = ListChar.length;
    for (int i = 0; i < lenFlag; i++) {
    tmpListChar[ListPos] = ListChar;
    }
    for (int i = 0; i < lenFlag; i++) {
    flag = flag + tmpListChar;
    }
    System.out.print(flag);
    }
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan