CTF

It's a reverse challenge. ssh welcome@18.176.232.130 password: hitconctf ssh welcome@18.176.232.130로 서버 접속해서 ls 명령어를 입력하면 이렇게 생긴 기차가 지나간다. 이건 리눅스 터미널에서 sl을 입력하면 나오는 것으로 명령어를 입력하면 반대로 입력되는 것을 알 수 있다. 그래서 sl을 입력하면 해당 디렉토리에 flag 파일이 있는 것을 볼 수 있다. 이를 확인할 때도 거꾸로 tac galf을 입력하면 flag가 출력되는 것을 볼 수 있다. FLAG : hitcon{!0202 ftcnoctih ot emoclew}
주어진 zip파일 해제해보면 JVM 클래프 파일이 몇개 있었고, 이것들을 디컴파일해서 Scala로 짜여진 걸 발견했다. 그러고 주어진 코드를 약간 간단히 만들어 보았다. object babyrev { def anon(a:Stream[Int], What:Seq[Seq[Int]]): Stream[Int] = { return a.sum #:: anon(a.flatMap(What), What) } def Main(args:Array[String]): Uint = { var What = Seq{Seq{0, 1, 2, 3}, Seq{0}, Seq{0}, Seq{0}} this.broken = anon(Stream({0}), What); } def Run() = { var a = ... var b = BigInt(b..
· CTF/Pwn
Diaries -- fun to read, painful to keep nc diary.balsnctf.com 10101 Source Code 아직 정확히는 이해를 못해서 더 heap에 대해 알아봐야할 것 같다. #!/usr/bin/env python3 from pwn import * context.arch = 'amd64' #r = process('./diary', env={'LD_PRELOAD':'./libc-2.29.so'}) r = remote('diary.balsnctf.com', 10101) def cmd(x): r.recvuntil('choice : ') r.send(str(x)) def ss(): cmd(1) def ww(l, s): cmd(2) r.recvuntil('Length : ')..
· CTF/Linux
(도저히 모르겠어서 다른 write up 참고했다.) initramfs를 보면, 서버 바이너리가 시작할 때 작동되고, 4433 포트에 자동으로 연결되는 것을 알 수 있다. 그리고 SSL을 통해 서버에 연결하여 integer(정수)를 읽고 이를 다시 echo(출력)하면 flag가 출력되면 문제를 해결할 수 있다고 한다. 하지만 이 파일시스템은 SSL에 연결하기 위한 툴은 가지고 있지 않고, 파일에 쓰기가 불가능한 것 같다. 그래도 busybox 설치는 netcat을 포함하는데, busybox nc 형식으로 명령어를 입력해 busybox를 실행하면 netcat을 호출할 수 있으며, 상호/대화적으로 TCP 포트에 연결될 수 있다고 한다. 먼저 localhost 5001포트에 netcat으로 대화적으로 연결했다..
기넌
'CTF' 카테고리의 글 목록 (4 Page)