일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- geminipro
- 인공지능
- burp suite
- Wargame
- write up
- 웹개발
- web hacking
- 테크트렌드
- lord of sqlinjection
- 웹해킹
- 사이버보안
- webhacking.kr
- 개발자
- pythonprogramming
- 프로그래밍
- SQL Injection
- WebHacking
- sql injection bypass
- 웹해킹 기초
- Over The Wire
- hackthissite
- root me
- 정보보안
- overthewire
- Bandit
- web-server
- CTF
- 코딩
- XSS GAME
- system hacking
- Today
- Total
컴맹에서 컴공 그리고 화이트 해커가 되는 그날까지
dreamhack file-download-1 풀이 본문
파일 다운로드 취약점을 이용한 문제였다.
접속정보를 받고 접속을 해보니
Home, Upload My Memo 그리고
Your uploaded memos 라고 되어있었다.
Upload My Memo에 가서 보니 내가 업로드할 수 있는 창이 나왔다.
분명 파일 다운로드 취약점이라 했는데.... 내가 왜 업로드해야 하지 하고
Filename에 first, Content에 first 라고 입력한 뒤에 Upload해 보았다.
Home에 first가 생겼고
눌러보니 first 내용도 적혀 있었다.
어떻게 하지 고민하다 파일 이름을 적는 칸에 ../를 넣어보았다.
그 결과 bad characters,,라고 되었다.
그럼이제 이 문제를 어떻게 풀어야 할지 감이 잡히기 시작했다.
제목에 취약점을 적어서 flag.py파일을 다운받으면 문제가 해결될 것이다.
하지만 코드를 살펴보면
filename.find('..') != -1:
이렇게 차단되어있다. 그렇다면 etc로도 해보면 어떻게 될까
그냥 페이지가 나가 버린다.
그럼 '..'이 필터링 되고 있으니 ..을 인코딩 해서 넣어보자.
..을 인코딩하면 %2e%2e가 된다.
자 드가자~
엥? 그래도 다시 페이지 자체가 나갔다.
흠... 그럼 /까지 전부 인코딩해보자
/를 인코딩하면 %2f가 된다.
그럼
가보자
일단 생겼다. 한번 눌러보자
와! 정답! FLAG를 얻었다!
파일 다운로드 취약점의 중요한 부분인 '../'를 필터링한 문제였고 그것을 우회하는 방법에 대해 알 수 있었던 문제였다.
'해킹 > Web hacking' 카테고리의 다른 글
webhacking.kr 27번 문제 풀이 (0) | 2023.02.22 |
---|---|
webhacking.kr old-12 번 문제 풀이 (0) | 2023.02.22 |
XSS-game level 6 (2) | 2023.02.02 |
XSS-game level 5 (0) | 2023.02.02 |
XSS-game level 4 (0) | 2023.02.02 |