Post

WRITE UP WEB ASCIS 2023 WARMUP

CHALLENG 1: HIDE AND SEEK!

Web Analysis:

Tại / trang web:

Untitled

Không có bất kì thông tin gì và mình scan File&dir không có phát hiện gì mới.

Mình bắt đầu tìm Intrusted Data (bạn nào chưa biết untrusted data là gì xem ở đây) Ở đây nè

Untitled

Và có phát hiện mới.

Giờ bật HACK MODE nào.

Exploiting Host Header Injection:

Sau khi 1 hồi nghịch thêm xóa sửa ở phần Host: access.sectigo.one:18000

Mình thử xóa bớt thành Host: access.sectigo.on:18000

Untitled

Nhưng nó chỉ có 1 đoạn của flag thì mình đoán rằng trên Host còn có thể thêm mấy mảnh ghép nữa.

nhưng mình send vẫn gói ở trên thì nó lại ra thêm 1 mảnh nữa. edit 1 chổ mà ra tận 2 mảnh quá hời =))

Untitled

Sau khi test nát trên url access.sectigo.one

thì mình bắt đầu thử bên ip local được không. (bởi mỗi trang web sẽ có kiểu IP public và IP local)

mà public là cái access.sectigo.one này nè.

Untitled

Nhưng cũng không ra gì mới, mình tiến hành ngồi test thử port xem. Bởi ý tưởng ở trên là thêm xóa sửa mà nên mình cứ flow này test cho hết case xem sao.

Untitled

Và IP 18001 có mảnh ghép kế tiếp =)) nice sừ

Mình test 2-6 nó ra trùng mấy mảnh ở trên cho tới ip thứ 7

Untitled

Nếu không ra mình định burte force thật may mắn quá. Kết hợp lại và ra FLAG : ASCIS{0ppp!_Y0u-Rand0mly-F0und_M3_Gre@t!}

CHALLENG 2: A BIG BLUE WHALE

Web Analysis:

Tại / trang web:

Untitled

Không có gì ngoài con cá voi mà ảnh này giống cái biểu tưởng bên Docker =)) có vẻ như liên quan gì đó rồi.

Untitled

giống nè nè. Trong nhưng trang web này không có gì đặc biệt giống Challenge bên trên và mình tiến hành recon như bình thường thì phát hiện trang web có chứa Dockerfile.

Wordlist mình sử dụng ở đây nè .

Untitled

Mình thử truy cập https://bluewhale.sectigo.one/Dockerfile

Untitled

Thì nó downloads về và mình open

1
2
3
4
5
6
7
8
9
10
11
FROM sectigo1/webbase:latest
LABEL MAINTAINER Sectigo <system@sectigo.one>
USER root
RUN mkdir -p /etc/nginx/ssl
COPY ssl/server* /etc/nginx/ssl/
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY ./index.html ./Dockerfile /usr/share/nginx/html
EXPOSE 80 443
HEALTHCHECK CMD curl --fail -k https://localhost:443 || exit 1
CMD ["nginx", "-g", "daemon off;"]
USER nginx

Ở đây nó dựng 1 docker được build lên từ image là sectigo1/webbase:latest

dưới quyền root thì mình có idea là mình sẽ exec vào docker image dưới quyền root để lấy flag.

*Trước mình có tự học qua về pentest docker nên cũng có chút kiến thức.*

Cùng kiểm chứng ý tưởng nhé.

Exploiting Dockerfile :

CÁCH 1: DUMP IMAGE DOCKER

Trước tiên mình pull image của docker về:

(vì mình có name của image nên mình được quyền pull nhé).

Mình đã làm rồi nên lúc pull đợi nó downloads nha.

Untitled

Sau đó sử dụng docker images để liệt kê tất cả image trong docker:

Untitled

Mình dùng IMAGE ID

Untitled

mình thử build lên nhưng không được.

CMD ["nginx", "-g", "daemon off;"] trong dockerfile nó tắt docker deamon nên mình không exec vào docker muốn vào docker thì phải login nhưng phải có passwd.

Untitled

Untitled

Thì ở trong docker image nó có 1 cmd là save .

Untitled

Untitled

CMD: docker image save 7b1425204c8d -o flag

Untitled

Đừng sử dụng cat nha. gần 1 triệu dòng nó bug luôn cái terminal á.

Open file bằng VSCODE

Untitled

vì quá nhiều nên mình đã search từ khóa của Flag là ASCIS{

Untitled

FLAG cuối: ASCIS{1t_R3a114_30rks_0n_m4_m@chin3}

CÁCH 2: EXEC IMAGE DOCKER

CMD: sudo docker run --user root sectigo1/webbase

Untitled

CMD: docker ps

Untitled

CMD: docker exec -it 00fc334ca47b /bin/sh

Untitled

Done =))

Mình xét tốt nghiệp rồi trường không cho thi nữa 🙂 nên cũng nghịch làm thử

Cảm ơn các bạn đã xem write up của mình

Nếu thấy hữu ích hoặc thắc mắc gì thì liên hệ mình góp ý nhé ID DISCORD: ren6806

This post is licensed under CC BY 4.0 by the author.

Trending Tags