CTF/zer0pts CTF 2021
-
[Study] zer0pts CTF 2021 Kantan Calc WriteupCTF/zer0pts CTF 2021 2021. 3. 10. 23:20
주어진 페이지에 들어가보자. 계산기 기능을 하는 페이지와, 그 소스가 있다. ${code} 부분이 사용자 입력 값인데, 임의의 코드를 삽입해서 플래그값을 출력해주도록 하면 될 것 같다. 하지만 입력값의 최대 길이는 29이고, 플래그를 통째로 출력하려고 시도하면 zer0pts 문자열을 포함하면 에러를 출력하는 구문때문에 제한된다. 따라서 시나리오는 1. 29자 이하의 코드를 삽입하되, 2. 플래그를 한글짜씩 출력해야한다. 29자 이하의 코드만 삽입 가능하기 때문에 간단하게 함수를 정의하는 방법을 알아보다가 화살표 함수라는 것을 알게 되어 사용했으며, /* ${FLAG} */ 부분을 통째로 문자열화시켜서 주석을 무효화시킴과 동시에 ${FLAG} 파라미터를 읽어오도록 하였다. 우선 로컬에서 테스트환경을 구축하..
-
[Study] ze0rtps CTF 2021 infected WriteupCTF/zer0pts CTF 2021 2021. 3. 9. 22:52
문제 서버에 접근하면 아래와같은 안내문이 출력된다. ????에 해당하는 네자리 문자열을 요구하는듯 하다. 주어진 pow.py를 실행시키면 Suffix, Hash 를 요구하는데 각각에 sha256() 안에 ????를 제외한 부분과 뒤의 해쉬값을 입력해주면 네자리 문자열을 출력해준다. 이를 입력하면 쉘에 접근이 가능하다. 플래그 획득을 위해서는 /root에 접근해야 하는데, 권한이 없다. 또 하나의 주어진 파일의 이름이 backdoor이므로 이와 관련성을 찾아보았다. backdoor이름으로 파일 검색을 해보니, /dev/backdoor 라는 device가 존재한다. 해당 디바이는 character device임을 알 수 있었다. (character device란, 버퍼 캐시등을 이용하지 않고 데이터를 읽고 ..