전체 글176 macOS 시스템 데이터 정리 시스템 데이터가 무겁게 쌓이는 것은 macOS의 치명적인 단점입니다.아무리 사용자에게 좋은 환경을 선사한다고는 하지만, 이런 식으로 제대로 된 파일 관리를 하지 못하고 용량을 계속 잡아먹는 것은 유쾌한 경험은 아닙니다.애플리케이션을 지워도 많이 남아있는 찌꺼기들, 주기적으로 방치되는 거대한 캐시 파일 등결국 꼬우면 나중에 더 큰 거 사라는 게 아닙니까? 시도할 만한 방법들을 모아서 이 글에 작성할 것이며, 주기적으로 업데이트 할 예정입니다.TIP:finder 활성화 상태에서 command + Shift + G 입력 시 나오는 창에서디렉터리 경로 입력하면 바로 해당 경로로 이동할 수 있습니다. 휴지통 비우기휴지통을 깨끗하게 비웁니다.이건 당연한 거라 시스템 캐시 삭제 ~/Library/Caches 디렉터.. 2026. 3. 11. [CTF] CCE2022 reborn of php Write-Up | Web 2022년 사이버공격방어대회 (CCE) reborn of php Write Up 입니다.문제에 접속하면 다음과 같은 페이지가 출력됩니다.아무 페이지에 들어가서 URL을 확인해 보았습니다. b 인자와 a 인자가 있는 것을 확인할 수 있습니다.이 인자들의 역할은 lib/controller.lib.php 코드에서 확인할 수 있습니다.b가 board, a가 action인데, 이 두 개를 결합하여 path를 설정합니다.[그림 3.2]를 예로 들면, b = register, a = index이므로path는 register/index가 되고, 26번 라인으로 인해 최종적으로 register/index.php가 완성됩니다.만약 11라인으로 인해 필터링에 걸리거나, 해당 경로에 파일이 존재하지 않으면 path는 main.. 2026. 3. 10. [CTF] CCE2022 BabyWeb Write-Up | Web 2022년 사이버공격방어대회 (CCE) BabyWeb Write Up 입니다.문제에 접속하면 텍스트박스와 제출 버튼이 보입니다.해당 서버는 다음과 같은 파일로 구성되어 있습니다.먼저 public/app.py 입니다. 이 코드의 핵심은 try문 안에 있습니다.48번째 라인을 return하는 것이 목적인 것으로 보입니다.또한, flag.service를 필터링하는것으로 보아, 해당 인자를 필터링을 우회하여 전달해야 하는 것으로 보입니다.Internal/app.py 소스코드 입니다. [그림 2.3]의 48번 함수 get()을 호출하면 실행되는 코드로 보입니다. 10번 라인에서, flag.service가 들어오면 FLAG를 return하도록 구성되어 있는 것을 확인할 수 있습니다.8번 라인에서 URL이 /flag.. 2026. 3. 10. [CTF] Lord of SQLInjection 16번 zombie_assassin Write-Up 15번 문제와 비슷한 코드인데, 이번엔 ‘ 검열 대신 strrev(addslashes()) 함수가 있습니다.select id from prob_zombie_assassin where id='{$_GET[id]}' and pw='{$_GET[pw]}'이 문제도 id와 pw를 입력받으며, 이것들을 잘 이용해 인젝션하면 됩니다.‘를 입력하게 되면, addslashes() \’가 되고, strrev()로 인해 최종적으로 ‘\가 됩니다.addslashes() 작동 범위는 ‘ ” \ NULL 입니다.NULL을 넣어보니 0\로 된 것을 확인할 수 있습니다.그러면, \%00을 넣으면 0\’\가 되어 \’가 생기게 됩니다. 이는 일반 문자열 역할을 하게 됩니다.select id from prob_zombie_assass.. 2026. 3. 10. [CTF] Lord of SQLInjection 15번 succubus Write-Up id, pw 둘 다 입력받으며, 싱글쿼터가 검열되고 있습니다.select id from prob_succubus where id='{$_GET[id]}' and pw='{$_GET[pw]}'이와 같은 쿼리에서 제한적으로 싱글 쿼터를 우회할 수 있는 방법이 하나 있습니다.싱글쿼터 ‘ 를 SQL에서 문자열 그 자체로 인식하기 위해서는 이스케이프 처리를 해야 합니다. 즉, \’ 이렇게 입력하면 SQL 문법이 아니라 문자열로 처리하게 됩니다.이를 이용하여 id 뒤쪽 ‘를 일반 문자열로 처리하여 무력화 시킬 수 있습니다.select id from prob_succubus where id='\' and pw=' or 1#'id에 \, pw에 or 1=1# (앞에 공백 포함)를 넣으면 \ 뒤에 있는 ‘가 문자열로 처.. 2026. 3. 10. [CTF] Lord of SQLInjection 14번 giant Write-Up ???from이랑 테이블 명이 붙어 있습니다. 이 사이에 값을 입력하여 떼어내는 것인가 봅니다.공백과, 공백으로 쓸 만한 것들은 검열되고 있습니다. (\n -> %0a, \r -> %0d, \t -> %09)\v(%0b)나 \f(%0c)로 우회하면 됩니다.입력하여 떼어내면 문제가 정답처리 됩니다. 2026. 3. 10. [CTF] Lord of SQLInjection 13번 bugbear Write-Up 검열 문자열이 많아졌습니다. 특히, 0x가 검열되어 hex로 문자열을 입력할 수 없습니다.select id from prob_bugbear where id='guest' and pw='' and no=1||id in(0b0110000101100100011011010110100101101110)hex가 안 되면 bin으로 입력하면 됩니다.admin의 bin값인 0b0110000101100100011011010110100101101110를 입력합니다. 공백은 tab 문자로 우회합니다.Hello admin이 뜬 것을 확인할 수 있습니다.select id from prob_bugbear where id='guest' and pw='' and no=1||id in(0b011000010110010001101.. 2026. 3. 10. [CTF] Lord of SQLInjection 12번 darkknight Write-Up Blind SQL Injection 문제인 것으로 보이며, 여기는 첫 번째 쿼리에 no라는 조건이 붙습니다. 여기서 no는 숫자 데이터임을 알 수 있습니다. (쿼터 미사용)select id from prob_darkknight where id='guest' and pw='' and no=select pw from prob_darkknight where id='admin' and pw=''그리고 pw와 no에서 검열되는 문자열이 차이가 있습니다.pw에서는 싱글쿼터만 검열되며, no에서는 싱글쿼터, substr, ascii, = 가 차단되고 있습니다.pw에서 ‘ 가 차단되기 때문에, 숫자형 데이터인 no에서 인젝션을 수행하도록 하겠습니다.select id from prob_darkknight where id.. 2026. 3. 10. [CTF] Lord of SQLInjection 11번 golem Write-Up Blind SQL Injection 문제입니다.특이사항으로는 or, and, substr, =가 검열당하고 있습니다.사실 MySQL에서는 or -> ||, and -> &&로 바꿔도 정상 동작하며, substr()과 mid()는 동일한 기능을 하는 함수입니다. 즉, substr() 대신에 mid() 쓰면 됩니다.문제는 = 기호입니다.값의 비교가 필요할 경우 > 문자열을 비교해야 할 경우, like()나 in 등으로 우회 가능합니다.select id from prob_golem where id='guest' and pw=''||id like('admin')#'이런 식입니다.우회가 된 것을 확인할 수 있습니다.select id from prob_golem where id='guest' and pw=''||i.. 2026. 3. 10. [CTF] Lord of SQLInjection 10번 skeleton Write-Up los 10번 skeleton Write-Up 입니다.절대 이루어 질 수 없게 1=0을 붙여 놓았습니다.딱히 검열 당하는 중요 구문은 없어서, 쉽게 해결 가능 해 보입니다.select id from prob_skeleton where id='guest' and pw='' or id='admin'#' and 1=0다음과 같이 입력하면 앞의 조건은 무력화되고, admin을 선택하며, 뒤의 이상한 조건은 주석 처리가 됩니다.URL Encoding 후 데이터를 전달하면 문제가 정답처리 됩니다. 2026. 3. 10. 이전 1 2 3 4 5 ··· 18 다음