문제분석 & 풀이url을 입력하고 curl 요청하는 페이지다. 코드를 확인해보자. cache file: {$cache_file}"; echo ''. htmlentities($result) .''; return; }}else{?>코드 분석url은 http로 시작해야한다.curl $url 로 curl 명령을 실행한다.캐시 파일을 /cache 경로에 저장한다.실행 결과를 화면에 출력한다. url을 이용해서 curl 명령을 실행한다. 따라서 ;와 같은 문자를 추가하면 curl 명령 외에도 임의의 명령을 실행시켜서 command injection을 수행하는 방식을 생각했다. 하지만 escapeshellcmd($_GET['url'])로 ;, | 등의 문자열을 사용해도 이스케이프 처리되..
개념정리파일 업로드 취약점에 대해 알아보자. ○ 파일 업로드 취약점웹 애플리케이션에서 사용자가 업로드한 파일을 처리하는 과정에서 발생할 수 있는 취약점으로 파일 업로드 기능이 존재하는 웹 사이트의 확장자 필터링이 미흡할 경우, 공격자가 악성 파일을 업로드하여 시스템을 장악할 수 있는 취약점이다. 공격자가 아무런 검증이 없는 웹사이트에 원하는 파일을 업로드할 수 있는 환경이라고 가정하자. 공격자가 웹쉘을 정상적으로 업로드한다면 웹쉘에 접근해서 시스템 명령어를 실행할 수 있게되고 공격자는 시스템 내부를 탐색하고 장악할 수 있을 것이다. 웹쉘을 업로드하면 공격자들은 보안 시스템을 피하여 별도의 인증없이 시스템에 쉽게 접속 가능하므로 굉장히 위험한 취약점이라고 할 수 있다. ○ 공격 절차해커는 악성 파일(웹쉘)..
개념정리Apache 서버에서 발생하는 파일업로드 취약점에 대해서 다루는 문제다. 기본 개념을 익히고 가보자. ○ .htaccess.htaccess는 hypertext access의 약자로, Apache 웹 서버의 디렉토리를 설정하는 기본 파일이다. 보통 웹사이트 root 디렉토리에 위치하며, 특정 디렉토리에 위치할 경우 해당 디렉토리 및 모든 하위 디렉토리에 설정에 대한 영향을 행사한다. .htaccess 파일을 사용하면 웹 서버 설정을 개별적으로 지정할 수 있기 때문에 공격자가 업로드할 수 있다면 웹 서버 설정을 건드릴 수 있는 위험한 취약점이다. ○ .htaccess 설정 정보URL 재작성: .htaccess 을 사용하면 URL을 재작성할 수 있다. 이를 통해 동적인 URL을 검색 엔진 최적화(SEO..
문제분석 & 풀이웹쉘을 업로드하고 "cat /flag"를 실행하라는 미션이 주어진다. 웹 쉘 코드를 작성하고 업로드했다. wrong type 이라고 뜨면서 업로드가 실패한다. PHP 확장자 파일을 업로드 하지 못하게 검증하는 것 같다. 확장자 검증을 우회하기 위해 webshell.php 뒤에 .jpg 를 붙여서 업로드했다. 업로드 된다! 그러나 이 파일은 .jpg 파일이기 때문에 파일에 접근하더라도 웹 쉘을 실행할 수 없다. 중요한 사실은 확장자에 대한 검증을 수행하는 방식이 아니라 다른 방식으로 업로드 파일에 대한 검증을 수행한다는 점이다. 업로드 과정의 패킷을 잡아보자. 패킷 데이터 영역 부분을 보면, Content-Type이 image/jpeg이다. 여러 차례 테스트를 해보면 알 수 있지만, Con..