일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- grep
- 카이사르
- 정답
- 리눅스
- #hacking
- Hxd
- 시스템해킹
- 버퍼오버플로우
- Smashing The Stack For Fun And Profit
- 해설
- 해킹 공부
- Aleph One
- picoCTF2018
- 시스템
- 리버싱
- forensics
- Protostar
- writeup
- WEB
- cryptography
- #picoCTF2018
- general skills
- 번역
- reversing
- write up
- KOISTUDY
- CTF
- picoCTF
- 스택
- dreamhack
- Today
- Total
목록WEB (10)
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'-- 를 넣으면 뒤의 비밀번호 검증을 주석처리하므로 로그인이 성공된다. 별다른 필터링이 없어 쉽게 풀 수 있는 문제이다.
제목이 클라이언트가 안 좋다는 것을 보아 웹사이트에 들어갔을 때 클라이언트 상의 스크립트를 확인하였더니 밑에의 그림처럼 비밀번호를 인증하는 스크립트를 확인할 수 있다. 위의 스크립트대로 FLAG를 맞추어보면 picoCTF{client_is_bad_5e06ac}가 된다.이를 빈칸에 넣어 로그인하면 flag를 얻었다는 것을 볼 수 있다.
먼저 링크에 들어가서 FLAG를 찾는다. 사이트에 들어가서 Ctrl+U(소스 보기)를 하면 주석으로 FLAG의 1/3을 보여주는 것을 볼 수 있다. 나머지의 FLAG를 찾기 위해 F12를 눌러 Sources에서 자바스크립트와 css파일을 보았더니 js파일에는 3/3이라고만 나와있고 별다른 FLAG 부분은 없었다. CSS파일에 들어가서 보았더니 가장 아랫부분에 2/3부분이 나와 있고 FLAG의 끝까지 나와있는 것을 볼 수 있었다.그래서 소스 보기에서 나왔던 FLAG의 앞부분과 현재 나와있는 부분을 이으면 FLAG를 얻어낼 수 있다. FLAG: picoCTF{ur_4_real_1inpect0r_g4dget_098dfd0}