1

게시판 Reflected XSS 취약점 고치기 1

게시판 Reflected XSS 취약점 고치기 1

노아의 블로그

    목차
반응형

저번 시간에 게시판 검색 기능에서 

Get 방식으로 전달되는 파라미터에 악성 코드를 삽입해서 url을 공유해 Reflected XSS 공격을 해 보았습니다.

이제 취약점을 발견했으니 고쳐봅시다.

 

먼저 간단한 방법을 떠올릴 수 있습니다. 

애초에.. 링크,파라미터를 사용한 공격 기법이니 파라미터 자체를 url에서 지우는거죠. 

즉 POST 방식의 데이터 전달을 하는 방법입니다. 이렇게 하면 무적일까요?

 

아니죠. 그러면 누구나 POST 방식을 사용하겠죠 GET 방식의 존재 이유가 없잖습니까

get은 url에 데이터를 포함해 링크 공유가 가능하고 겉으로 데이터를 받아 간단한 처리를 할 수 있죠.

하지만 post 방식은 그러하지 못합니다. 공유도 불가하고 속 안에서 데이터를 처리해야죠.

 

그러한 한계로 get과 post가 서로 나뉘는것이죠

 

그렇다면 POST 방식 말고 또 다른 방법으로 취약점을 고칠 수 없을까요?

 

쿠키의 http only 속성을 사용하면 서버와 클라이언트는 쿠키를 주고받을수 있지만 클라이언트 (자바스크립트)로는 쿠키에 접근이 불가합니다.

직접 사용 해 봅시다.

 

세션은 직접 만드는것이 아니라. was측에서 만드는데요 이를 설정하기 위해서는 php.ini 파일을 수정해야 합니다.

 

먼저 아무 곳에나 phpinfo(); 함수를 작성해서 실행합니다. 저는 login.php에 작성하였습니다. 

Configuration File (php.ini) Path 즉 경로가 나옵니다. 이 경로로 change directory 해주세요.

명령어를 실행하고 ctrl + f 로 검색창을 엽니다.

 

httponly를 검색하면 

 

이런식으로 나옵니다. 속성을 true로 바꿔줍시다.

저장 하시구요!

 

설정을 변경했으니 서버를 재시작 합시다.

마지막으로 아까 작성했던 phpinfo(); 함수는 지워주고

실행을 해 봅시다.

 

로그인을 진행하면, 정상적으로 쿠키값에 httponly 속성이 확인됩니다.

이제 콘솔장에서 쿠키를 조회하는 자바스크립트를 실행하면?

 

저번에 자동 로그인을 만들때 사용한 userid 쿠키만 나오네요.

즉 session id는 http only 속성이 적용되어서 더 이상 자바스크립트로 접근이 불가합니다.

반응형

'해킹 > XSS' 카테고리의 다른 글

게시판 Reflected XSS 공격과 취약점 고치기 - 2  (0) 2023.05.18
게시판에 Reflected XSS 공격 해보기  (0) 2023.05.15
Reflected XSS 학습  (0) 2023.05.14