>> 소스 코드
upload 과정에서는 filename에 ".."가 들어가는지 점검한다.
그러나 download 과정에서는 filename에 ".."가 들어가는지 확인하지 않는다.
>> exploit
소스코드를 보면,
업로드되어있는 파일을 읽기 위해서는
/read에 "name" parameter를 전달해야 한다.
실제로 업로드&read 테스트를 해봐도,
http://host3.dreamhack.games:21074/read?name=mytitle
로 접속하게 됨을 확인할 수 있다.
즉, http://host3.dreamhack.games:21074/read?name=☆
로 접속함으로써, ☆ 파일을 읽는 것이다.
그러므로, 만약 공격자가 상위 디렉토리의 flag.py를 읽고 싶다면,
☆ 자리에 ../flag.py를 넣으면 된다.
'IT > Wargame' 카테고리의 다른 글
[Web hacking] bob12-idor-practice (0) | 2024.07.24 |
---|---|
[System Hacking] out_of_bound (0) | 2024.07.10 |
[Web Hacking] image-storage (0) | 2024.07.08 |
[Web Hacking] command-injection-1 (2) | 2024.07.08 |
[Web Hacking] Mango (0) | 2024.07.07 |