본문 바로가기
반응형

WEB HACKING56

File Download 공격 ① 파일 다운로드 취약점이란? File Download 취약점은 파일 다운로드 시 사용자로부터 특정 파일 정보를 입력받지만 이 입력값을 검증하지 않을 경우에 발생할 수 있는 취약점이다. fileOpen('/upload/' + $_GET['fileName']); 위와 같이 경로와 이름을 통해 특정 파일에 접근해서 다운로드를 하는데, 이 값들을 조작한다면 임의의 파일을 다운로드할 수 있게 된다. 파일 다운로드 취약점은 파일 업로드 취약점과 공격 방식도, 대응 방안도 비슷하다. 우선 공격 대상 서버에 있는 파일을 불러오는 LFI와 비교를 해보자. LFI는 파일 경로를 조작하여 해당 서버에 있는 파일을 확인하는 공격이었는데, /etc/passwd 같은 파일이 아닌 php 코드는 include가 파일을 실행해버리.. 2021. 12. 21.
Php로 웹 개발하기 : 문의 게시판(2) 문의 게시판 페이지를 만들어서 마이페이지에 연결하고, 이전 포스팅에서 만들었던 문의글 작성 기능을 문의 게시판에 연결해주자. [qna_board.php] Number Title 문의하기 2021. 12. 20.
File Upload 공격(3) 두 차례에 걸쳐 File Upload 공격과 몇 가지 대응 방안의 우회 방안까지 알아보았다. 마지막으로, File Upload 공격에 대한 추가적인 내용과 LFI, RFI 그리고 근본적인 대응 방안에 대해 알아보자. ⓛ 만약 파일 업로드 기능이 없다면? 웹 페이지에 파일 업로드 기능이 없다면 File Upload 공격을 사용할 수 있을까? 결론부터 말하자면, 웹에서 해당 기능을 제공하고 있지 않더라도, 업로드 공격을 할 수 있는 방법이 있다. 웹 디렉토리 및 파일을 스캔하는 도구인 dirbuster를 사용하면 웹 서버에서 사용하고 있는 파일 이름을 찾을 수 있다. 일반적으로 로그인 페이지는 login.php, 게시판 페이지는 board.php로 이름 짓듯이, 사람들이 사용할 법한 이름을 리스트로 만들어둔.. 2021. 12. 18.
Php로 웹 개발하기 : 문의 게시판(1) 이번 웹 개발에서 마지막으로 구현할 페이지는 비회원도 사용할 수 있는 문의 게시판이다. 기존에 만들었던 일반 게시판과 거의 유사하지만, 비회원도 문의글을 작성하고 비밀번호를 통해 글을 조회할 수 있다는 점만 차이가 있다. 문의 게시판의 형태는 게시판과 똑같이 만들 것이고, 회원이 글을 쓰면 자신의 비밀번호로 설정되고 비회원이 글을 쓰면 따로 비밀번호를 입력받도록 만들 것이다. 우선 qna 테이블을 만들어주자. mysql> CREATE TABLE qna ( -> `id` int(5) AUTO_INCREMENT PRIMARY KEY, -> `title` varchar(20), -> `content` varchar(5000), -> `password` varchar(20) NOT NULL -> ); [qna... 2021. 12. 15.
File Upload 공격(2) 저번 포스팅에서는 File Upload의 개념과 공격을 위해 필요한 경로 파악하는 법에 대해 알아보았다. 이번에는 File Upload 공격을 막을 수 있다고 알려진 대응 방안의 우회 방안에 대해 알아볼 것이다. ① 파일 유형(Content-Type) 서버는 파일을 주고받을 때 MIME(Multipurpose Internet Mail Extensions) Type으로 파일의 종류를 확인한다. 따라서 이 MIME-Type의 Content-Type을 확인해서 image/jpeg등인 경우에만 업로드할 수 있도록 만들 수 있다. [우회 방안] BurpSuite으로 패킷을 확인해보면 위와 같이 img를 업로드했을 때는 Content-Type : image/jpeg이지만 php 파일을 업로드하면 Content-Ty.. 2021. 12. 12.
File Upload 공격 파일 업로드는 공격자가 원하는 임의의 파일을 업로드할 수 있는 취약점이다. 사용자가 올린 파일을 검증하지 않고 모두 서버에 저장하기 때문에 발생하며, 공격자는 이 점을 이용하여 악성 파일을 업로드할 수 있다. ① 공격 시나리오 1) 서버 측 실행 파일 업로드 만일 서버에서 파일 업로드 기능에 대해 아무런 검증을 하지 않는다면, web shell과 같은 서버 측 백도어 파일을 업로드할 수 있다. 파일 업로드 기능을 활용한 가장 대표적인 공격으로, 시스템 명령을 수행해서 쉘을 획득하는 공격이 있다. 2) 피싱 사이트 악성 코드를 업로드하여 시스템 명령을 수행하는 것 외에도, 서버 측 Html 파일을 업로드하여 피싱 사이트를 만들 수도 있다. 사용자는 자신이 접속한 사이트에서 응답받은 페이지이기 때문에, 큰 .. 2021. 12. 11.