일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- pwnable
- Spring Framework
- SQL
- webhacking
- 정보보안기사
- 웹해킹
- PWN
- wargame
- Spring MVC
- 운영체제
- Payload
- LOB
- Pwnable.kr
- Spring
- system hacking
- webhacking.kr
- 네트워크
- BOF
- System
- hacking
- Shell code
- 정보처리기사 실기
- 해킹
- 워게임
- 정보보안기사 실기
- stack overflow
- Lord of BOF
- Operating System
- Buffer Overflow
- OS
Archives
- Today
- Total
DongDD's IT
[webhacking.kr] Level 41 본문
[webhacking.kr] Level 41
문제에 들어가니 파일 선택과 upload 두개의 버튼이 있었다. 파일 선택을 눌러보니 그냥 파일을 고르는 창이 나왔고 upload를 눌러보니 다음과 같은 페이지로 넘어갔다.
no라는 메시지가 출력이 되었다. 아마 필터링이 되있는 것 같다는 생각이 들었다.
이번 문제는 소스코드가 있었다. 파일을 선택하고 업로드를 하면 .을 공백으로 대체하고
/, \, htaccess, .htaccess가 포함되거나 길이가 10이상이면 no를 출력하는 것이다.
php의 copy함수에 대해 몰라 찾아보니 단순히 복사하는 함수였다. 즉 $cp에 파일이름이 들어가고
이것을 $hidden_dir/$fn로 복사한 후 암호를 이 파일에 쓰는 형식으로 되어있었다.
$hidden_dir만 알아낸다면 문제를 쉽게 해결할 수 있을 것 같았다.
copy함수에서 $hidden_dir/$fn 에서 ">", "<" 를 사용하면 no를 출력하는 필터링을 모두 거친 후에
$fn이 아무 값도 없게되어 copy함수에서 error가 출력되어 hidden_dir을 알 수 있었다.
원하는 파일을 업로드하였다.
Done이라는 메세지가 나온 것으로 보아 파일이 제대로 들어갔고 거기에 flag가 적혀있었다.
hidden_dir의 경로의 내가 올린 파일로 들어가니 flag가 적혀있었고 문제를 해결할 수 있었다.
************** Answer & Flag **************
'Wargame > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] Level 11 (0) | 2017.09.30 |
---|---|
[webhacking.kr] Level 12 (0) | 2017.09.27 |
[webhacking.kr] Level 42 (0) | 2017.09.12 |
[webhacking.kr] Level 32 (0) | 2017.09.11 |
[webhacking.kr] Level 25 (0) | 2017.09.11 |
Comments