NOT4DOG
방명록 RSS 태그 글쓰기 관리자
 
[CTF] Dreamhack simple_sqli 문제 Write-up
CTF Write-up 2021-12-26 14:28:29

반응형

문제) 로그인 서비스입니다.
          SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다.

 

문제와 같이 app.py를 제공한다.

admin 계정으로 로그인 시 FLAG를 획득할 수 있고 ID와 PW를 전달하는 SQL 쿼리문을 확인할 수 있다. 

app.py 내용

이 문제 또한 burp suite를 이용하였다. 로그인 창에서 admin 계정으로 무작위 비밀번호를 넣었다.

로그인 창
입력한 ID와 PW가 전달된다

SQL INJECTION을 사용하라고 했으므로 SQL 주석을 이용해 ID값 이후의 문장을 주석처리해주었다.

SQL에서 한 Line을 주석처리하는 문자열은 -- 이고, ""으로 감싸주었다.

ID 이후를 주석처리 (Pass)

FLAG 획득 성공

FLAG 획득

 

반응형


[CTF] Dreamhack pathtraversal 문제 Write-up
CTF Write-up 2021-12-26 13:44:36

반응형

문제) 사용자의 정보를 조회하는 API 서버입니다.
        Path Traversal 취약점을 이용해 /api/flag에 있는 플래그를 획득하세요!

 

Path Traversal 취약점 또한 문자 그대로 파일의 경로를 조작하여, 주어진 권한 외 파일에 접근할 수 있는 취약점이다.

 

문제와 같이 app.py를 제공한다.

app.py의 내용

Get User Info 화면에서는 각 계정마다 부여된 level, password를 확인할 수 있고,

admin과 guest 계정만 조회가 가능하다 (app.py 참고)

계정마다 부여된 정보 확인

burp suite Tool을 이용하여 intercept를 통해 클라이언트와 웹 서버간의 요청/응답 Packet을 확인했다.

guest를 입력하니 guest 계정에 해당하는 uid = 0 값으로 인식한다.

uid로 인식한다

uid 부분에 취약점을 이용하여 ../flag 로 변조했고,

변조 후 FLAG를 확인할 수 있다.

uid 값 변조
FLAG값 확인

 

반응형


[CTF] Dreamhack file-download-1 문제 Write-up
CTF Write-up 2021-12-26 12:35:40

반응형

문제) File Download 취약점이 존재하는 웹 서비스입니다.
           flag.py를 다운로드 받으면 플래그를 획득할 수 있습니다.

 

문제와 같이 app.py를 제공한다.

app.py 파일에서 업로드 시 사용되는 파라미터 값과 저장되는 경로, file name과 content의 조합 등을 확인할 수 있다.

app.py의 내용

또한 메모를 업로드할 수 있는 창이 뜬다.

메모를 업로드하는 화면

테스트로 메모를 올려보았다.

여기서 주목해야하는점은 상단에 표시된 주소창이다. 

file name을 파라미터로 직접 받아 조회함을 확인할 수 있다.

파일 다운로드 취약점은 보통 ..이나 / 를 사용해서 상위 디렉토리로의 접근이 가능한것을 뜻한다. (절대경로의 사용가능) 

test 파일 업로드 시 test 라는 file name을 직접 파라미터로 사용한다.

이러한 취약점을 이용해 상위 디렉토리에 있던 flag.py의 내용을 확인하여

FLAG를 획득할 수 있다.

FLAG값 획득

반응형


[CTF] Dreamhack cookie 문제 Write-up
CTF Write-up 2021-12-26 12:00:44

반응형

문제) 쿠키로 인증 상태를 관리하는 간단한 로그인 서비스입니다.
        admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다.

 

문제와 같이 app.py를 제공한다.

guest의 아이디 패스워드 (guest / guest)를 확인할 수 있다.

획득한 guest 계정의 아이디 / 패스워드를 가지고 guest 계정으로 로그인해보면 이러한 화면이 나온다.

guest 계정이므로 FLAG값을 얻을 수 없다.

하지만 우리는 이 로그인 Session이 쿠키 인증 방식임을 알고있고

이는 크롬 드라이버 (개발자도구-Application) 에서 쿠키의 값을 변조할 수 있다.

guest 값을 admin 값으로 변조한 화면

변조 후 새로고침을 통하여 FLAG를 획득할 수 있다.

인증정보가 admin으로 변조되어 FLAG를 얻을 수 있다.

반응형