Web Security DAY_009 upload 취약점 , download 취약점 , 업로드 취약점 , 다운로드 취약점 , webshell.php , 웹쉘 , c99.php , c99 , 웹 해킹 , url 로 웹해킹하기

2024. 2. 1. 23:46Information Security 정보보안/Web Security 웹 보안

728x90

배울내용:

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

 

 

 

 

 

 

728x90