일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- KOISTUDY
- cryptography
- 리눅스
- #picoCTF2018
- 리버싱
- 카이사르
- WEB
- picoCTF2018
- Hxd
- 시스템해킹
- general skills
- Protostar
- forensics
- #hacking
- 해킹 공부
- 버퍼오버플로우
- 스택
- writeup
- picoCTF
- dreamhack
- Smashing The Stack For Fun And Profit
- 번역
- CTF
- write up
- grep
- Aleph One
- reversing
- 시스템
- 해설
- 정답
- Today
- Total
목록write up (25)
Security || AI
문제의 제목을 보고 robots.txt에 관련된 문제라는 것을 추측하게 되었다. 평소 같았으면 못 풀었겠지만 얼마 전 우연히 Wechall이라는 워게임 사이트에서 관련 문제를 robots.txt에 관련된 내용을 구글링 해가며 풀었던 기억이 나서 풀 수 있었다.이 문제도 그 문제의 풀이 방식을 응용하여 사이트의 주소 뒤에 /robots.txt를 붙여 접속하니 아래의 사진과 같은 robots.txt의 내용을 볼 수 있었다. 여기서 Disallow: /65c0c.html을 통해 로봇이 접근하지 못하게 한것을 볼 수 있다. 그러므로 disallow를 한 페이지에 들어가면 아래의 사진처럼 FLAG를 얻어낼 수 있다.
문제의 웹사이트에 들어가서 사이트를 둘러보면 아래의 사진과 같이 메뉴에 admin page가 있는 것을 볼 수 있다.이 문제의 힌트를 보면 admin페이지의 로그인 과정을 데이터베이스에서 처리하는 것을 볼 수 있다. SQL쿼리에서는 id를 검증하는 쿼리 뒤에 바로 비밀번호를 검증한다. 그러므로 id를 admin으로 하고 뒤의 내용을 무시하면 되므로 SQL에서의 주석문을 사용하면된다. 그러므로 ID에 admin'-- 를 넣으면 뒤의 비밀번호 검증을 주석처리하므로 로그인이 성공된다. 별다른 필터링이 없어 쉽게 풀 수 있는 문제이다.
admin panel에서 로그인하는 과정을 캡처한 pcap파일이다. 로그인을 할 때는 POST방식으로 통신을 했을 것이므로 와이어샤크에서 HTTP로 필터링하여 분석한 결과 아래와 같이 나왔다. 위의 HTTP패킷들을 보면 542 POST /login이라는 패킷을 분석을 해보면 아래의 그림처럼 id는 admin이고 비밀번호는 picoCTF{n0ts3cur3_894a_6546}를 볼 수 있다.
제목이 클라이언트가 안 좋다는 것을 보아 웹사이트에 들어갔을 때 클라이언트 상의 스크립트를 확인하였더니 밑에의 그림처럼 비밀번호를 인증하는 스크립트를 확인할 수 있다. 위의 스크립트대로 FLAG를 맞추어보면 picoCTF{client_is_bad_5e06ac}가 된다.이를 빈칸에 넣어 로그인하면 flag를 얻었다는 것을 볼 수 있다.
grep1과 같은 문제로 이것 역시 egrep을 사용하여 푸는 문제이다.SHELL을 통해 문제를 접속하면 grep1과 다르게 많은 파일이 보인다. 아래의 사진들은 file이 30개씩 들어있는 디렉토리가 10개가 있다. 이 중에서 FLAG가 들어있는 파일을 찾아내면 된다.이를 하나하나 찾아보는 것은 문제를 푸는 의미도 좀 떨어지고 정석풀이가 아닌 단순한 노가다이므로 이를 한번에 찾는 방법을 쓰면된다.리눅스의 특성을 이용해서 file0~30을 file*로 간단히 줄일 수 있다. 그래서 grep1에서의 명령어를 좀 수정하면egrep 'pico' files*/file*을 사용하면 pico라는 문자열이 든 파일을 문제의 모든 디렉토리 내 파일들에서 찾아낸다. FLAG: picoCTF{grep_r_and_you_w..