WRITE UP WEB ASCIS 2023 WARMUP
CHALLENG 1: HIDE AND SEEK!
Web Analysis:
Tại /
trang web:
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è
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
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 =))
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è.
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.
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
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:
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.
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è .
Mình thử truy cập https://bluewhale.sectigo.one/Dockerfile
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.
Sau đó sử dụng docker images
để liệt kê tất cả image trong docker:
Mình dùng IMAGE ID
mình thử build lên nhưng không được.
Vì 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.
Thì ở trong docker image nó có 1 cmd là save .
CMD: docker image save 7b1425204c8d -o flag
Đừ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
vì quá nhiều nên mình đã search từ khóa của Flag là ASCIS{
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
CMD: docker ps
CMD: docker exec -it 00fc334ca47b /bin/sh
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