CTF
-
CCE 2023 Writeup (일반 부문)CTF 2023. 6. 11. 00:18
Babyweb (1)PHP의 include()에서 발생하는 path traversal과 nginx에서의 race condition을 이용해 flag를 얻을 수 있다. * https://medium.com/@emmapinheiro42/php-include-ignore-4a3ba81371af* https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ #!/usr/bin/env python3import sys, threading, requests# exploit PHP local file inclusion (LFI) via nginx's client body buffering assistance# see https://bierbaumer.net/secu..
-
San Diego CTF 2023 - 'tROPic-thunder' Write UpCTF 2023. 5. 31. 17:54
checksec에서는 canary가 적용되어 있다고 나와있는데 실제로 main함수를 보면 canary를 검증하는 로직이 없다. 추가로 pie는 적용되어있지 않고 fgets()에서 stack buffer overflow가 발생하고 있다. 코드를 조금 더 살펴보면 바이너리가 정적 링크되어 있음을 알 수 있다. 여기에 system()과 같은 주요 함수들은 포함되어 있지 않다. 애초에 execve와 같은 system call들이 seccomp 필터링에 의해 DENY LIST로 등록되어 있다. 단, puts, fgets 등 파일 입출력에 필요한 함수들은 여전히 사용가능하고 Dockerfile을 통해 flag의 위치를 알려주기 때문에 flag를 읽는데는 문제가 없다. ROP로도 문제를 풀 수 있지만 SROP를 이용..
-
-
TAMUctf 2023 Write UpCTF 2023. 5. 1. 11:42
Logical 사용자의 입력값(single quotation)이 sql 문법으로 해석되어 에러가 발생한다. single quotes를 두 번 사용할 경우, 별도의 concatenation operator 없이도 문자열이 연결되어 정상적으로 응답이 돌아오는 것을 확인할 수 있다. 이를 통해 해당 웹서비스에서 사용중인 dbms가 mysql임을 추측할 수 있다. select x from y where username = '[INPUT]' mysql에서 사용하는 문법과 함수를 이용해 쿼리를 완성했을때 정상적으로 값이 돌아오는 것을 확인할 수 있다. (database = users) 이제 차례대로 테이블 명, 칼럼, 데이터를 추출하면 플래그를 알 수 있다. 인젝션에 쓰인 쿼리는 다음과 같다. table name ..
-
-
LINE CTF 2023 - 'Baby Simple GoCurl' Write UpCTF 2023. 3. 26. 13:55
사용자의 ip가 화면에 출력되고 있다. (Welcome, XXX.XXX.XXX.XXX)사용자가 입력한 url로 요청을 보내는 curl 기능이다. ClientIP가 "127.0.0.1"가 아닌 경우에는 url 파라미터에 "flag", "curl", "%" 삽입이 불가능하다.다른 ip를 경유해서 온 경우(리다이렉트 된 경우) 접근이 차단된다.reqIP가 '127.0.0.1'인 경우 화면에 flag를 표시하는 flag 페이지다. curl 페이지의 ssrf 취약점을 이용해 flag를 읽는 문제임을 확인할 수 있다.gin 프레임워크의 ClientIP는 ip 식별을 위해 ..