letsencrypt에서 발급하는 인증서는 3개월짜리 단기 인증서이다. 

 

때문에 서버에서 3개월마다 인증서를 갱신해주어야한다.

 

letsencrypt 인증서를 관리해주는 certbot을 통해 갱신하는데 certbot은 자동갱신기능이 없다.

 

때문에 크론탭을 통해 인증서를 갱신해야한다.

 

3개월마다 갱신 후 아파치 재시작

 

서버에서 관리하는 인증서 확인

 

'' 카테고리의 다른 글

bypass file upload restrictions (filename extension)  (0) 2016.10.17
HttpOnly Vulnerability  (0) 2016.09.30
How To use IIS(Internet Information Services) - ASP  (0) 2016.09.19
strcmp vulnerability on php  (0) 2016.09.19
Directory Listing denied on Apache  (0) 2016.09.19

파일업로드 취약점을 통해 웹쉘을 올릴때 확장자 검사만을 통해 필터링하는 경우가 있다.


이때 .asp  .php  .jsp  를 필터링 하는경우 우회가 가능하다.


- 파일 업로드 우회 가능 확장자


asp : asa, cer, cdx


jsp : war


php : php3, html, htm


각 언어에 따라 확장자 필터링을 우회하면 웹쉘 업로드 및 실행이 가능하므로 취약하다고 할수 있다.





파일 업로드 대안방안


1. 업로드 폴더의 권한을 제거


2. jpg,gif 등 게시판 용도에 맞게 필요한 확장자만 허용(화이트 리스트)


3. 파일명을 암호화 해서 저장( webshell.asp > 29ba9191e9a8d6dc )


4. 확장자를 강제로 변경해서 저장( webshell.asp > webshell.xaspx )


5. 데이터베이스에 바이너리화 해서 저장


6. 파일 서버를 따로두어 클라이언트가 업로드하는 파일들은 따로 저장

'' 카테고리의 다른 글

LetsEncrypt Certificate Auto Renewal  (0) 2021.01.19
HttpOnly Vulnerability  (0) 2016.09.30
How To use IIS(Internet Information Services) - ASP  (0) 2016.09.19
strcmp vulnerability on php  (0) 2016.09.19
Directory Listing denied on Apache  (0) 2016.09.19

웹페이지에 크로스 사이트 스크립트(XSS) 공격이 가능하다면 쿠키값을 가져올 수 있다. 즉 공격자가 쿠키에 접근이 가능해 진다.


이를 막기위해 HttpOnly라는 속성이 등장했다.


서버에 SetCookie 헤더를 보낼때 HttpOnly 옵션을 주어 쿠키 접근을 방지할 수 있다.


다음은 php를 통한 HttpOnly 속성의 예시이다.






* httpOnly 설정 방법


- PHP


5.2 이상버전

setcookie("name","value",0,"/","domain_name",false,true); 


5.2 이하버전

header( "Set-Cookie: name=value; httpOnly" );


- JSP


java에서 설정

String sessionid=request.getsession().getId();

response.setHeader("SET-COOKIE","JSESSIONID",+sessionid+";HttpOnly");


web.xml에서 설정

<session-config>

<cookie-config>

<http-only>true</http-only>

</cookie-config>

</session-config>


- ASP


HttpCookie cookie = new HttpCookie("cookie", DateTime.Now.ToString());

cookie.Name = "cookie";

cookie.HttpOnly = true;


제어판 - 프로그램 - 프로그램 및 기능 - windows 기능 사용/사용 안함



인터넷 정보 서비스 체크



http://localhost -> IIS가 정상적으로 서비스 되는것을 볼 수 있다. 




웹 서버의 루트 디렉토리 C:\\inetpub\wwwroot 에 test.asp 만들면 웹페이지가 정상적으로 동작한다.




한글이 깨질 경우 호환성 보기를 활성화 한다.





루트 디렉토리를 변경하고 싶은경우


제어판 - 관리도구 - IIS(인터넷 정보 서비스)관리자



default web site 체크 후 고급설정 클릭




실제 경로를 원하는 경로로 변경해주면 된다.

 

모든 설명은 windows 7 기준이다.



'' 카테고리의 다른 글

LetsEncrypt Certificate Auto Renewal  (0) 2021.01.19
bypass file upload restrictions (filename extension)  (0) 2016.10.17
HttpOnly Vulnerability  (0) 2016.09.30
strcmp vulnerability on php  (0) 2016.09.19
Directory Listing denied on Apache  (0) 2016.09.19

<?

        $str="hacked";

        if(strcmp($str,$_GET['param'])==0)

                echo "good";

        else

                echo "bad";

?>



당연한 결과이다.


그러나 php에서 strcmp는 배열과 비교를 하면 취약점이 발생한다.






post로 넘겼을때 burp suite를 통해 parameter값을 변조하는 방법이다.






해결책은 ==와 같은 느슨한 비교 말고 === 같은 엄격한 비교.


또는 is_string, is_array 같은 함수를 통한 입력값 검증.


이 취약점은 php 5.3 버전 이상부터 발생한다.






index.php 같은 파일을 설정햇을때  index.php가 존재하지 않는 경우 위와 같이 입력하면 디렉토리 리스팅 취약점이 발생한다.


이를 방지하기 위해 apache 웹 서버를 사용하는 경우 /etc/apache2/apache2.conf 파일에서



Indexes를 지워준다


그리고 웹서버를 재시작 한다.


/etc/init.d/apache2 restart




+ Recent posts