'[WebShell] php파일 업로드 취약점과 리눅스 서버를 건들여(?)보기'에 해당되는 글 1건

[WebShell] php파일 업로드 취약점과 리눅스 서버를 건들여(?)보기 Web/Web Hacking 2012.07.20 19:39

리눅스에서 운영되는 서버는 대표적으로 두개의 서버가 있습니다.

삼바를 이용한 서버운영과 아파치를 이용한 서버운영입니다.

기준을 아파치서버로잡고 강의를 시작하도록 하겠습니다.

대표적인 업로드 취약점

이미공개된 취약점이지만 제로보드pl7이하(미패치)나 기타 커스텀빌더 게시판에 업로드할때 먹히는 취약점이있습니다.

.htaccess라는 파일을 이용하여 우선업로드후 확장자를 우회시킨다고 많이말을 하시더군요 우회시킬 수 있습니다.

.htaccess파일의 내용은 아래와같습니다.

AddType application/x-httpd-php .php .php3 .php4 .htm .html .txt .fcf

마지막에 .fcf는 php파일인 웹쉘파일의 확장자를 .fcf로 바꿔주시면 php로 실행가능하도록 만들어줍니다.

고로 .htaccess파일 업로드후 웹쉘을 확장자만 .fcf로 바꿔 업로드하시면 php필터나 html필터를 거치지않고 업로드되게되며 업로드경로를 알게될때 웹쉘을 바로 사용할 수 있습니다.

그리고 아파치설정파일인 httpd.conf파일 내용중 AddLanguage라는 옵션이있는데 다국어 지원때문에 있는 옵션입니다.

옵션의내용은 아래와같습니다. -모 호스팅사이트 실제 환경입니다.-

 

여기서보이는 .kr이나 .no .po .iso8859-8과같은것들이 보이는데 이는 구지 .htaccess파일을 업로드하지 않아도 .php확장자를 .kr이나 .iso8859-8로 바꿔도 국내 대부분의 사이트에 php파일 업로드가 자유로웠을겁니다.

하지만 최근에 제로보드나 그누보드 슈퍼보드 커스텀빌더의 게시판은 필터링처리를 하기때문에 파일이름을 바꾸고 데이터베이스에서 인증받아 실행시키는등의 방법으로 먹히는사이트는 아주 옛날홈페이지밖에 없습니다.

여전히 먹히는사이트도 구글로 검색해보면 많이나오긴합니다.

다음로는 php업로드가 자유롭다는 가정하에 리눅스서버를 건들여보도록 하겠습니다.

아래와같이 php를 코딩해줍니다.

<?
passthru($cmd);
?>

php에쓰인 passthru함수는 시스템 커맨드명령을 사용해줄수 있게해주는 함수입니다.

아파치서버가 루트권한으로 돌아간다면 모든명령어는 물론 최고관리자 권한이기떄문에 어떤폴더든 접근하고 삭제하고 수정하고 새로만들수있는 권한이 있습니다.

하지만 요즘은 대부분 노바디권한으로 돌아가기때문에 사용할수있는 명령어는 극히적습니다.

업로드가되었다면 업로드경로/Cmd.php?cmd = 리눅스 명령어 를한번 사용해보시기 바랍니다.

저는 아래와같이 ls명령어를통해 호스팅서버에 홈디렉토리목록을 보았습니다.

 

서버에 업로드만 성공한다면 루트계정으로 돌아가는서버면 완벽히 지배한셈이지만 노바디권한의서버라면 완벽히지배할려면 root권한을 획득해야합니다.

하지만 획득할려면 따로 exploit의 프로그래밍이 필요하며 별도의 리눅스서버에서 컴파일하거나 노바디권한이 gcc나 컴파일권한이있다면 웹쉘내에서해도 무방합니다.

저작자 표시 비영리 변경 금지
신고

Name
Password
Homepage
Secret
< PREV |  1  |  NEXT >

Neko