1. File upload
1. 개념
파일업로드
게시판 등의 파일 업로드 할 수 있는 기능을 악용하여 악의적인 파일 업로드를 통해 시스템 권한을 장악하는 기법.
2. 공격방법
구분 | 설명 |
파일 확장자 우회 | 1.서버 우회 2.클라이언트 우회 |
취약점 | 1.정상 확장자(JPG,PNG 등)를 이용한 우회 2.WEB/WAS 취약점 악용 우회 3.Application (OS,DBMS,Editor 등) 취약점 악용 우회 |
3. 취약점 사례
첨부파일 기능을 이용하는 취약점.
첨부파일을 업로드 할 수 있는 웹 에디터의 취약점을 이용하는 방식입니다.
웹쉘 공격에 사용되는 파일을 업로드 하거나 원하는 동작을 직접 대상 시스템이 사용하는 서버 사이드 언어로 작성하여 업로드 합니다.
만약, 대상 서버에서 업로드 파일에 대한 확장자를 검사할 경우 종단문자(%zz,%00)을 사용하여 우회합니다.
webshell.jsp파일에 종단문자를 섞어 업로드하면 서버는 jpg로 인식하고 업로드를 하게 되면 원래의 확장자로 실행이 되어 공격을 수행 할 수 있습니다.
4. 실습 시나리오
실습 시나리오로 웹쉘을 올리기 전에 파일의 크기를 변경하거나 파일의 확장자를 변경하여 첨부파일을 올린다면 공격을 할 수 있을 것이라고 예상할 수 있습니다.
깃허브에서 웹쉘 다운
파일 업로드
파일 업로드를 했을 때 처음에는 이미지가 업로드 되지 않는 것을 알 수 있습니다.
버프슈트 이용
버프슈트를 이용하여 프록시를 잡고 max file size의 크기를 늘려보았습니다.
파일 업로드가 성공합니다.
웹쉘 실행
웹쉘이 실행 되었음을 확인할 수 있습니다.
4. 대응방안
업로드가 되는 디렉토리를 외부로 지정하거나 접근 권한을 삭제하여 실행을 방지합니다.
업로드한 파일의 크기가 큰 경우에는 서버 자원이 낭비되기 때문에 최대크기를 지정합니다.
업로드 가능한 확장자를 지정하여 검증하고 우회 가능한 종단 문자를 제거합니다.
2. Insecure captcha
1. 정의
캡차란?
캡차는 사람과 컴퓨터를 구별하기 위한 것입니다.
웹 사이트 회원가입, 게시판 게시글 작성, 패스워드 변경등에 사용됩니다.
자동화 프로그램의 일종인 봇을 이용해 악성행위를 반복적으로 수행하는 것을 차단하기 위해 사람만이 알아 볼 수 있는 이미지를 제시하며 사용자가 사람인지 아닌지를 확인합니다.
2. 캡차 미흡 적용 사례
1.캡차 인증값을 사용자 클라이언트단에 보관하여 검증한 사례
2.캡차 인증 실패 후 새로운 코드를 발급하지 않아 brute forcing이 가능한 사례
3.캡차 코드를 이미지가 아닌 평문으로 발급하여 사용자에게 노출되는 사례
4.캡차 이미지 파일명을 통해 코드를 유추할 수 있는 사례
5.이미 인증을 완료한 캡차코드 나 세션을 파기하지 않아 재사용이 가능한 사례
(출처 : https://m.blog.naver.com/lascomco/221135409607)
[ 보안 취약점 진단 ] 자동화 공격을 막기 위한 캡챠(CAPTCHA)의 취약점 및 올바른 사용
[보안 취약점 진단] 자동화 공격을 막기 위한 캡챠(CAPTCHA)의 취약점 및 올바른 사용캡챠(CAPT...
m.blog.naver.com
3. 실습
[dvwa 소스코드 확인]
소스코드
1 입력 후에 문제가 없으면 2로 넘어갑니다.
값을 저장하지 않는 것을 알 수 있습니다.
step2에서 비밀번호 값을 변경함을 알 수 있습니다.
[정상접근시 버프슈트 확인]
홈페이지에서 정상접근을 해보았습니다.
정상 접근시에 버프슈트에 잡히는 코드입니다.
step=1 이곳을 참고해주세요
트랙터를 선택한 후에 나오는 결과값입니다.
트랙터를 선택한 후에 나오는 버프슈트값입니다.
여기서 step=2를 참고해주세요
캡차 없이 바로 체인지를 눌렀더니 나왔던 값입니다.
앞에서 봤던 것처럼 step2에 뒤에 값이 나오면 캡차 인증없이 비밀번호가 변경될 수 있음을 알 수 있습니다.
[캡차 없이 버프슈트에서 값 조작]
step의 값을 2로 변경하고 forward를 해보겠습니다.
캡차 인증없이 비밀번호 변경됨을 확인할 수 있습니다.
4. 캡차 사용시 주의 사항
1.캡차 정보는 클라이언트 사이드에 저장되지 않아야 하며, 클라이언트 정보를 신뢰하지 않아야 한다.
2.캡차 이미지는 반드시 이미지 사전처리, 세분화, 분류를 수행할 가능성이 없이 항상 랜덤하게 생성되어야 한다.
3.이미지는 재사용되지 않아야 한다.
(출처 : https://m.blog.naver.com/lascomco/221135409607)
[ 보안 취약점 진단 ] 자동화 공격을 막기 위한 캡챠(CAPTCHA)의 취약점 및 올바른 사용
[보안 취약점 진단] 자동화 공격을 막기 위한 캡챠(CAPTCHA)의 취약점 및 올바른 사용캡챠(CAPT...
m.blog.naver.com
5. 대응방안
캡차대신 pass앱, otp토큰, sms인증을 사용하는 것이 좋습니다.
'보안' 카테고리의 다른 글
[웹모의해킹] 4-2. Blind SQL Injection (0) | 2021.06.10 |
---|---|
[웹모의해킹] 4. SQL Injection (0) | 2021.06.10 |
[웹모의해킹] 2. CSRF, File Inclusion (0) | 2021.06.10 |
[웹모의해킹] 1. DVWA구성, Command Injection,Brute Force Attack (0) | 2021.06.10 |
[웹취약점진단] 5. 웹쉘 실습편 (예제2) (0) | 2021.06.09 |
댓글