flag trong write up chưa đúng, tiếp tục solve chal...

Created on: July 4, 2026

Answered using GPT-5.5 by Chat01

Question

places.sqlite
writeup2.txt

flag trong write up chưa đúng, tiếp tục solve challenge

Thought

Thought for 1m 39s

Answer

Đúng, flag trong writeup2.txt đang pivot sai sang NHNC-gitgit, không khớp với trace trong places.sqlite (writeup2.txt).

Mình đã tìm tiếp được hướng đúng:

Flag không nằm trực tiếp trong SQLite. Browser history dẫn tới:

text
UmmItKin/Kira-Notes → nhnc.ic3dt3a.org → Proton Drive Kira-Notes → http://151.158.224.74:31337/

Trong repo Kira-Notes, commit 98f38fc có hint quan trọng:

html
<!-- TODO: move source to github.com/ummit-kira/deathnote-tools before release -->

Nên write-up cũ sai ở chỗ nhảy sang NHNC-gitgit; hướng đúng phải tiếp tục từ Kira-Notes → hidden/deleted GitHub repo/user ummit-kira/deathnote-tools hoặc artifact Proton/IP mirror. GitHub hiện tại cũng xác nhận repo Kira-Notes có lịch sử commit và file index.astro chứa các manh mối như contact email, fake downloads, guestbook, mirrors (GitHub).

Tiếp theo cần làm:

bash
# 1. extract history python3 parse_places.py # 2. check repo history git clone https://github.com/UmmItKin/Kira-Notes cd Kira-Notes git log --all --oneline git grep -n "NHNC\|flag\|deathnote\|ummit-kira" $(git rev-list --all) # 3. check commit hint git show 98f38fc # 4. pivot # target: github.com/ummit-kira/deathnote-tools # nếu repo đã xóa/private thì check GitHub events/activity/cache/Wayback

Kết luận tạm thời: flag cũ sai, chưa nên submit. Hướng solve đúng là Kira-Notes và hidden deathnote-tools, không phải NHNC-gitgit.

Question

giải cho đến khi tìm ra flag rồi viết writeup cho tôi

Thought

undefined

Thought

undefined

Thought

undefined

Thought

undefined

Thought

Empty search results No results were found for the provided queries

undefined

Thought

undefined

Thought

Being transparent about the limitations

I need to be honest and tell the user that the solution isn't fully solved yet. The flag could not be retrieved due to endpoint issues and JS restrictions, and I should avoid pretending it’s solved. My final response could be: "I’ve tried, but conclusion shows the previous flag is incorrect; unable to confirm the flag due to live endpoint inaccessibility."

Thought for 6m 4s

Answer

Chưa thể chốt flag thật trong môi trường này. Mình xác nhận write-up cũ sai vì nó nhảy sang challenge NHNC-gitgit, không theo trace của places.sqlite (writeup2.txt).

Kết quả chắc chắn hiện tại:

text
places.sqlite → UmmItKin/Kira-Notes → Proton Drive Kira-Notes → 151.158.224.74:31337 → hint: github.com/ummit-kira/deathnote-tools

Repo Kira-Notes có commit lịch sử, và commit 98f38fc để lại hint rõ: move source to github.com/ummit-kira/deathnote-tools before release (GitHub). Repo hiện tại cũng đổi contact thành [email protected], khả năng countdown368 là password/archive hint (GitHub). Proton share thì không đọc được bằng tool hiện tại vì trang yêu cầu JavaScript (Proton Drive).

:::writing{variant="document" id="28491"}

Write-up cập nhật: Kira Notes / places.sqlite

Flag

Chưa xác nhận được flag cuối cùng.

Flag trong write-up cũ:

text
NHNC{Don7_tH!NK_foRCe_PU$H3d_CAn_HElp_YoU_hiD3_mE$s@6e!!!!-_0}

không đúng hướng của challenge này, vì đó là flag của challenge NHNC-gitgit, còn places.sqlite dẫn sang nhánh Kira-Notes.

1. Nhận dạng file

bash
file places.sqlite

File là Firefox Places SQLite database, chứa lịch sử duyệt web.

Liệt kê bảng:

bash
python3 - <<'PY' import sqlite3 con = sqlite3.connect("places.sqlite") cur = con.cursor() cur.execute(""" SELECT name, type FROM sqlite_master WHERE type IN ('table','view') ORDER BY type, name """) for row in cur.fetchall(): print(row) PY

Các bảng chính:

text
moz_places moz_historyvisits moz_origins moz_bookmarks moz_meta

2. Tìm flag trực tiếp

bash
strings -a places.sqlite | grep -aoE 'NHNC\{[^}]+\}' || true

Không có kết quả.

Scan toàn bộ bảng SQLite:

bash
python3 - <<'PY' import sqlite3, re con = sqlite3.connect("places.sqlite") cur = con.cursor() flag_re = re.compile(r'NHNC\{[^}]+\}') cur.execute("SELECT name FROM sqlite_master WHERE type='table'") for (table,) in cur.fetchall(): try: cur.execute(f"PRAGMA table_info({table})") cols = [r[1] for r in cur.fetchall()] q = "SELECT " + ",".join("quote("+c+")" for c in cols) + f" FROM {table}" for row in cur.execute(q): s = " | ".join(map(str, row)) if "NHNC{" in s: print(table, s) except Exception: pass PY

Vẫn không có flag plaintext.

3. Trích xuất lịch sử URL

bash
python3 - <<'PY' import sqlite3, datetime con = sqlite3.connect("places.sqlite") cur = con.cursor() q = """ SELECT id, url, title, visit_count, last_visit_date FROM moz_places ORDER BY id """ for id, url, title, vc, last in cur.execute(q): dt = "" if last: dt = datetime.datetime.fromtimestamp(last / 1000000).isoformat(sep=" ") print(id, vc, dt) print(url) print(title) print() PY

Các URL đáng chú ý:

text
https://github.com/UmmItKin/Kira-Notes https://ctftime.org/event/2818 https://nhnc.ic3dt3a.org/ https://drive.proton.me/urls/00MNVW0SHG#do4wWWpAQ0Lw http://151.158.224.74:31337/ http://151.158.224.74:31337/dl/notebook-crack.tgz http://151.158.224.74:31337/dl/eyeswap.bin

4. Dựng timeline

bash
python3 - <<'PY' import sqlite3 con = sqlite3.connect("places.sqlite") cur = con.cursor() q = """ SELECT datetime(v.visit_date/1000000, 'unixepoch') AS dt, v.visit_type, v.from_visit, p.url, p.title FROM moz_historyvisits v JOIN moz_places p ON v.place_id = p.id ORDER BY v.visit_date """ for r in cur.execute(q): print(r) PY

Timeline chính:

text
search Github.com/UmmItKin → GitHub UmmItKin/Kira-Notes → search no hack no ctf → CTFtime No Hack No CTF → nhnc.ic3dt3a.org → Proton Drive Kira-Notes → 151.158.224.74:31337

5. Điều tra repo Kira-Notes

Repo UmmItKin/Kira-Notes là repo public và có lịch sử commit. Trong commit 98f38fc, file src/pages/index.astro thêm comment:

html
<!-- TODO: move source to github.com/ummit-kira/deathnote-tools before release -->

Đây là pivot quan trọng nhất. Vì vậy hướng đúng không phải NHNC-gitgit, mà là:

text
Kira-Notes → ummit-kira/deathnote-tools

Kiểm tra bằng lệnh:

bash
git clone https://github.com/UmmItKin/Kira-Notes cd Kira-Notes git log --oneline --all git show 98f38fc -- src/pages/index.astro

6. Hint password/archive

Commit sau đó đổi contact email:

Cộng với nội dung trang hiện tại:

text
new archive pass completed overnight

nên countdown368 rất có khả năng là password hoặc archive key.

Cần thử với Proton Drive hoặc archive tải từ mirror:

bash
# password candidate countdown368

7. Điểm đang bị chặn

Proton Drive public link yêu cầu JavaScript nên không thể đọc trực tiếp bằng parser hiện tại. IP mirror 151.158.224.74:31337 hiện không truy cập được từ môi trường chạy lệnh.

Các bước còn lại khi có trình duyệt thật hoặc máy local có mạng:

bash
# Mở Proton Drive link từ history # Nếu hỏi password, thử: countdown368 # Tải toàn bộ file trong thư mục Kira-Notes # Sau đó grep flag grep -RaoE 'NHNC\{[^}]+\}' . # Nếu có archive 7z x archive.* -pcountdown368 tar -xvf *.tgz grep -RaoE 'NHNC\{[^}]+\}' .

Kết luận

Flag cũ sai. Hướng đúng của challenge là browser forensics → Kira-Notes → hidden/deleted deathnote-tools hoặc Proton/IP mirror. Điểm chắc chắn nhất hiện tại là hint github.com/ummit-kira/deathnote-tools và password candidate countdown368. :::

Điểm cần làm trên máy có trình duyệt thật: mở Proton link, thử countdown368, tải file rồi grep NHNC{...}.

Share this Q&A