2024. 2. 1. 23:46ㆍInformation Security 정보보안/Web Security 웹 보안
배울내용:
upload 취약점
download 취약점
업로드 취약점
다운로드 취약점
webshell.php
웹쉘
c99.php
c99
웹 해킹
url 로 웹해킹하기
VM에 mini 서버를 켜주고
바탕화면에서 txt 하나를 만들어준다
이렇게 만들어준 파일을 놔두고
mini 서버로 들어간뒤에
웹하드를 클릭하고
아까 쓴 글을 선택해준다
그리고 전송 누르고
cd /var/www/html/file/
에가서보면
이렇게 sarimus.txt 가 올라가있는걸 볼수있다
그리고 키워드 검색에서 sari 검색하면 이렇게 나오는데
여기에 ? 가 있는걸 봤을때 어떤 공격을 할수가 있을것같다
<a href="/down_file.php?file_name=sarimus.txt >
이거를
<a href="http://192.168.10.100/down_file.php?file_name=../../../../../../etc/passwd >
이런식으로 바꿔서 넣고
sarimus.txt를 클릭해서
다운을 받고 txt 파일로 열게 되면
이렇게 passwd 의 모든정보가 보이게 된다
이렇게 되는이유는
이걸 다운받을때부터 GET으로 했기떄문에 공격이 가능했다
그리고 어디의 위치인지모르니
../../../../../../../etc/passwd 는
뒤로 간뒤에 최상위 위치에서 /etc/passwd 하면
passwd 의 위치니깐
저렇게 불러오게 되는 것이다
해당 취약점을 이용해
파일이 업로드되는 다운로드 위치가
/var/www/html/file 임을 확인 할수있다 (원래는 모르는 상태)
http://192.168.10.100/down_file.php?file_name=../../../../../../../../etc/httpd/conf/httpd.conf
아까 href 에 이걸 대신넣어주면된다
httpd.conf 는 httpd.conf는 Apache HTTP Server의 주요 설정 파일 중 하나인데
여기에서 어디에 저장되어있는지 볼수있다
여기서 중요한것만 빼내면
DocumentRoot "/var/www/html" 이 있고
DirectoryIndex 가 index.php이란것도 알수있다
그러면 이제 여기서 /var/www/html 에 index.php 만 붙여서
http://192.168.10.100/down_file.php?file_name="../../../../../../../var/www/html/index.php"
해주면
이런파일이 열리게 되고
즉 webhard.php 에서
웹하드에서 저장실행해서 어딘가에 저장되는걸 알수있다
그럼 webhard.php 를 열어보면
이번에는 업로드 된 파일이 up_file.php 로 들어가는걸 알수있다
그리고 이젠 up_file.php 로 가면
이제 여기서보면 ./file 로 가는걸 결국 보게된다
그리고 /var/www/html/file 해버리면
이렇게 directory indexes 공격이 완료된다
먼저 txt 로 아래처럼 만들어준뒤
확장자를 php 로 만들어서
web shell 파일 하나를 만들어주자
그리고 웹 하드에서 전송한뒤에
키워드 검색하고
이제는 file 이 어디있는지 아니깐
192.168.10.100/file/webshell.php?
여기에다가
arg=ifconfig
이걸넣어
192.168.10.100/file/webshell.php?arg=ifconfig
실제로 192.168.10.100 서버에서 ifconfig 한 값을 출력하는걸 볼수있다
물론
다른 명령어도 실행시킬수있다
이런식으로도 원하는정보를 빼갈수있다
이번에는 c99 파일을 열어볼건데
c99이란건 다운받으면 된다
그러나 windows에서는 보안프로그램에서 막힐가능성이 높다
그러나 이게 저런식으로 성공하게 된다면
보다 쉽게 공격을 다양하게 실행시킬수있다
그러면 이걸 어떻게 막을수있을까?
upload 보안
1. php 나 asp 나 html 등 web 확장자 파일을 차단한다
2. 특수 문자나 웹스크립트 언어 부분을 치환하거 막는다. (백더,디펜더)
if(preg_match("/(.php|.html|.html)/i",$upload[$i]))
{ echo "html , php 관련 파일은 업로드 불가";
exit;
}
download 보안
1. 기존의 DB 내용에 있는 파일인지 점검
2. ../../../ 와 같은 경로문자를 빈칸으로 치환
php 파일에
$file_name=str_replace("../"," " ,$file_name);
을 추가하면 된다
이렇게 오늘도 다른 취약점과 그에대한 보안방법을 배웠다
그럼 20000