CTF 문제
-
DB 데이터 추출 1CTF 문제/Segfault - Web 2023. 5. 2. 14:31
Segfault - DB 데이터 추출 1 문제 풀이입니다 1. 문제 사이트에 접속하면 위와 같은 화면이 나온다 2. nor을 입력하니 아래처럼 정상적으로 값이 나왔다 3. sql injection을 시도해 보니 정상적으로 값이 나왔다 4. UNION을 이용하기 위해 null을 사용하여 컬럼의 개수를 알아내었다 5. 데이터 베이스 이름을 알아내었다 6. 데이터베이스에서 테이블의 이름을 확인하였다 7. 위에서 얻어낸 테이블에서 컬럼의 이름을 알아내었다 8. 알아낸 테이블의 이름과 컬럼 이름을 이용하여 Flag를 획득하였다
-
blind sql injection advanced 문제풀이CTF 문제/Dreamhack - Web 2023. 5. 2. 10:14
Dreamhack 웹2 Stage 2 -> blind sql injection advanced 입니다 1. 문제페이지에 접속하니 위와 같이 나타났고 admin을 입력해 보았다 2. 함께하기 공부를 하면서 보았던 값들을 넣어보니 정상적으로 결과가 나타났다 3. 이상한 값을 보내니 위와 같은 에러도 볼 수 있었다 4. 함께하기에서 공부했던 [$regex]와 온점을 사용하여 위와 같이 admin이라는 결과를 얻었다 5. 숫자, 영어, 한글 로 비밀번호가 구성이 되어있다고 문제에 나와있어서 하나하나 다 시도해 보면 좋지만 시간이 너무 오래 걸려서 파이썬의 requests 모듈을 이용하여 Flag를 구했다 6. 위 코드는 드림핵 함께하기에서 나온코드이며 어떻게 진행이 되는지 순서대로 공부하기 좋다
-
error based sql injection 문제풀이CTF 문제/Dreamhack - Web 2023. 5. 2. 10:05
Dreamhack 웹2 Stage 2 -> error based sql injection 입니다 1. 문제 페이지로 접속하니 위와 같은 화면이 나왔다 2. admin을 넣어보니 정상적으로 쿼리가 실행되었으며 결과가 화면에 나타난다 3. 문법에러가 발생했다면서 데이터베이스에 대한 정보를 알려준다 4. 해당 데이터베이스에 Column이 몇 개인지 알아보았다 5. 알아본결과 3개의 Column을 가지고 있다 6. extractvalue를 이용하여 에러를 발생시켜 보았다 7. Flag가 출력이 되었지만 너무 길어서 뒤에는 ... 으로 나왔다 8. substr 과 limit을 이용하여 뒷자리를 출력해 주었다 9. 뒷자리까지 모두 나왔다
-
로그인 우회 - 2CTF 문제/Segfault - Web 2023. 4. 30. 12:02
Segfault - 로그인 우회 문제 풀이입니다 1. 아이디와 비밀번호가 주어졌고 admin으로 로그인을 해야 한다 2. 주어진 계정으로 로그인을 해 보았다 3. 아이디와 비밀번호가 입력이 되고 전송버튼을 눌렀다 4. 정상적으로 로그인이 되었고 위와 같은 이미지가 나타났다 5. 성공했을 때 11번째 줄에 result는 ok 이다 6. 실패했을 때는 result의 값이 fail이다 7. 그렇다면 result의 값을 ok 로 바꿔서 응답받도록 시도했다 8. fail을 ok로 바꿔서 정보를 보냈다 9. 다시 로그인 페이지로 돌아왔다 10. 로그인 완료 페이지로 이동하기 위해 응답값을 바꿔주기로 하였다 11. 응답값에 보면 다시 로그인 페이지로 돌아가라고 되어있는데 드래그해놓은 부분을 삭제했다 12. 다른 데는..
-
미스터 브루트CTF 문제/Segfault - Web 2023. 4. 30. 01:03
Segfault - 미스터 브루트 문제 풀이입니다 1. Brute Force 문제이다 2. 4자리의 숫자를 모두 넣어봐야 한다 3. Intruder로 보내어 Brute Force를 해보려고 한다 4. 변수 설정을 해줬다 5. 우선 0000 부터 0999까지 시도를 해보았으나 무료 버전이어서 시간이 갈수록 느려졌다 6. /6/checkOTP.php뒤에 값으로 입력한 값이 전달이 됨을 확인하고 파이썬의 requests 모듈을 이용하기로 했다 7. 내가 보내는 url을 확인하기 위해 출력을 해 주었고 성공했다면 응답내용이 달라질 것이므로 res.content를 이용해서 확인을 해 주었다 8. 1021번의 내용이 달라서 1021을 입력하니 위와 같이 Flag가 나왔다