본문 바로가기
  • 안아주는 다람쥐

seKUCTF7

[seKUCTF] simple culculater 먼저 들어가자 마자 /source 로 진입하여 소스코드를 확인해 달라고 한다 소스를 확인해 보면 다음과 같다 소스코드의 일부분이다 위의 /calcluate 부분을 자세히 보면, %s 부분에 user 라는 쿠키값이 들어가는것으로 보이는데 그것을 검증하지 않고 그대로 보여주는 것을 취약점으로 보인다. 다음과 같이 flask의 jinja2 문법이 실행되는것을 확인 하였다. ssti 취약점이 가능하다는 것이 확인 된 것이다. 다음으로 {{config.item()}} 을 넣어 확인해 보겠다. 딕셔너리 형태로 되어 있는 config들이 모두 출력되게 되면서 플래그도 도출되게 된 것을 볼 수 있다. 2023. 5. 7.
[seKUCTF] forcelogin1 이 문제 또한 /source로 들어가서 문제를 풀어달라고 하고 있다. 알맞는 id와 password를 /loginAction으로 보내면 그 id에 해당하는 flag에 저장되어있는 값을 읽는 것 처럼 보인다. 먼저 테스트로 나와있는 guest에 로그인 해보았다. 다음과 같이 권한이 없다고 나온다. admin으로 권한을 우회해접속해야 하는것으로 보인다. 그래서 평소에 하던거 처럼 union select를 이용하여 sql injection을 시도하려고 했는데 banlist = ['select','\'','"','`',';','limit','or','and','||','&&','ascii','substr','information','concat','inno'] 다음과 같이 ban list에 select 가 밴 .. 2023. 4. 9.
[seKUCTF] forcelogin 2 다음과 같이 /source로 들어가 소스코드를 확인해 달라고 한다 들어가서 확인을 해 주자 다음과 같이 /loginAction을 해서 로그인 시에 해당 user id에 맞는 구문을 출력해 주는것으로 보인다. 로그인액션이 실행되는 구문을 자세히 살펴보자 select ID from "+table_+" where ID='"+id_+"' and PASSWORD='"+pass_+"'\ forcelogin 1과 달리 logintable 부분에 따로 t라는 인자를 받을수가 있어졌다 대신 ban list가 다음과 같이 늘어났다. banlist = ['inno','select','\'','"','`','information','concat','union','all','ascii','substr','#','--','\\'.. 2023. 4. 9.
[seKUCTF] Ping! 먼저 source에 들어가서 소스코드를 확인하라고 나와있다. 확인하기 위해서 /source 에 들어가서 확인을 해준다. 밑으로 내려서 확인을 해보니 /execute 라고 수상한 주소가 보인다. @app.route('/execute') def execute(): directory = str(request.cookies.get('uniqueKey')) if checkHack(directory): return 'no hack ^__________^' createDirectory("/app/mypinguser/"+directory) ip_ = str(request.args.get('ip', "")) if not checkLenHack(ip_): return os.popen("cd /app/mypinguser/".. 2023. 3. 22.
linux 와일드카드란? 1. linux 와일드카드의 정의 Linux 와일드카드는 하나 이상의 문자를 나타내는 데 사용되는 특수 문자 또는 시퀀스입니다. 일반적으로 사용되는 와일드카드는 *(문자 수 제한 없음) 및 ? (단일 문자). 패턴을 기반으로 파일을 선택하거나 조작하는 데 사용되며 많은 Linux 명령과 함께 사용할 수 있습니다. Linux의 와일드카드 패턴에는 최대 길이가 없지만 일부 명령에는 입력 문자열 제한이 있을 수 있습니다. 2. 와일드 카드의 종류 1. * 일치 되는 모든 "문자열"을 찾아주는 명령어 // ls 예시 $ ls * // 현재 디렉토리에 있는 모든 파일 list 출력 $ ls *.c // 현재 디렉토리에 있는 .c 파일 list 출력 $ ls ma* // ma으로 시작하는 현재 디렉토리에 있는 모든.. 2023. 3. 21.
OS Injection 이란? 1. os 인젝션의 정의 OS 명령 인젝션(OS Command Injection 또는 Shell Injection)은 웹 애플리케이션이 구동 중인 서버의 운영체제상에서 임의의 명령을 실행하도록 하는 웹 취약점입니다. 웹 애플리케이션은 HTML 폼, HTTP 헤더, 쿠키, GET 파라미터 등을 통해 사용자로부터 데이터를 입력받아 시스템 셸(Shell)에 제공할 수 있습니다. 이 때 사용자가 제공하는 입력값에 대한 유효성 검증이 구현되어있지 않거나 안전하지 않은 방식으로 검증을 한다면 OS 명령 인젝션 공격에 취약할 수 있습니다. OS 명령 인젝션을 통해 실행되는 명령은 루트나 관리자 권한의 계정이 아닌 웹 애플리케이션을 구동하는 계정의 권한으로 명령이 실행되므로 일반적으로 시스템 전체를 손상시키지 못하지만.. 2023. 3. 21.
[seKUCTF] NewAPI 시작하기 앞서 ) 시작하기 전에 docker에 ctf 서버를 설치 후 시작해야 했으나, 실패하여 원인을 찾아보니 make.bat의 디렉토리가 NewAPI가 아닌 fastAPI로 되어있는것을 확인하여 설정 후 설치해 주었다. (파일명만 바꾸어 실행해도 가능할 것으로 추측된다. 1. 힌트 찾기 먼저 문제 서버에 접속해준다 접속해서 보니 {"msg":"Hello stranger!! This is CTF Master Moon. Good Luck!","id":"guest","pw":"guest"} 간단하게 이렇게 나와있는것을 분석해보녀 id와 pw에 대한 인자값을 넣어 요청을 보내면 될 것 같아보여 주소창에서 시도했는데 되지 않았다 그래서 피들러를 확인하여 해당 홈페이지를 접속할때의 패킷을 인스펙터 - 로우로 확.. 2023. 3. 15.