인증결함

웹해킹/Bee-box 2017. 12. 29. 00:10
반응형
SMALL

이번엔 인증결함에 대해 포스팅해보려고 한다. 실습자체는 간단한데 이 공격방식 또한 많이 쓰여지는 방식이기 때문에 항상 주의가 필요하다.


1. 인증결함이란?


- 인증에 필요한 사용자의 계정정보를 노출하는 취약점

- HTML코드, GET요청 URL에 변수를 노출

- 취약한 암호 인증

- 취약한 인증 과정


2. 인증결함 공격 과정



<출저: 보안프로젝트>



공격플로우를 보면 인증과정 결함, 세션관리 취약점 등으로 사용자 권한을 획득해 로그인 해 정보를 빼내는 경우가 많기 때문에 항상 세션관리, 인증방식에 대한 보안 검토를 철저히 할 필요성이 있다.



* 인증결함 공격실습*


(1) Broken Auth(Insecure Login Forms) 공격



InSecure Login Form의 보안단계를 Low로 설정했을시에 특이한 현상이 발생한다. 저렇게 블록지정해놓은 곳을 보면 아이디 비밀번호가 그대로 노출되어 있다. 예전에 많이 사용하던 방식이라고 하는데 요즘에는 보안이슈에 예민하기 때문에 거의 사용하진 않는다고 한다. 사진에 있는 아이디, 비밀번호만 입력해주면 바로 로그인 되는 것을 볼 수 있다.



로그인이 되면 success라는 문구가 나오는게 보이면 정상적으로 실행된 것이다.





이번에는 보안레벨을 medium으로 설정했는데 이 역시도 금방 해킹할 수 있다. 아까처럼 눈에 보이게끔은 아니지만 페이지 소스를 보면 바로 비밀번호 해킹이 가능하다.





페이지 소스를 보면 뭔가 암호화 하는 코드가 보일 것이다. 코드를 분석해서 일일히 알아낼 수도 있기는 하지만 시간이 걸리기 때문에 블록지정한 코드들을 복사해서 크롬 자바스크립트 콘솔을 활용해서 비밀번호를 알아냈다.




자바스크립트 콘솔에 코드를 붙여넣고 alert(secret)라는 명령어를 넣고 실행하면 바로 비밀번호를 알아낼 수 있다. 저 비밀번호를 넣고 로그인을 하면 비밀번호가 바로 공개된다.


 


(2) Broken Auth - Weak Passwords 공격 (1)


말그대로 패스워드 취약점을 이용한 공격방법이다. 이건 프록시를 잡아서 해야 하는데 일단 칼리리눅스가 무료버전이기 때문에 스레드도 하나밖에 안되서... 비밀번호 해킹하려면 한 3~4일은 돌려야 가능할 것이다. 그렇기 때문에 하는 방법만 포스팅했다.




일단  bee, bug라고 입력하고 프록시를 잡아준다.



그리고 버퍼스윗으로 와서 send to intruder을 클릭해 intruder로 프록시들을 보내준다.



그리고 패스워드에만 $$를 지정해준다. 오른쪽 Add, Clear로 쉽게 설정할 수 있다.



Payload로 가서 타입을 Brute forcer로 바꿔준다. 이 타입은 좀 더 많은 공격을 할 수 있다. min,max length도 3으로 맞춰준다.(비밀번호가 3자리였기 때문에) 이렇게 설정해줘도 46656번을 돌아야 비밀번호 알아내기가 가능해진다.




옵션은 따로 지정해 줄 건 없지만 스레드가 하나기 때문에 비밀번호를 찾는데 엄청난 시간이 걸린다. 유료로 사게 되면 스레드 설정이 가능하기 때문에 좀 더 빨리 비밀번호를 찾아 낼 수 있을 것이다.



그리고 target으로 가서 start Attack를 눌러주면 저렇게 실행되면서 비밀번호를 찾는다. 이게 스레드가 1개여서 3~4일은 돌려야 알아내기가 가능할 것이다-_-;;


(3) Broken Auth - Weak Passwords 공격 (2)



사진에 보이는 것처럼 구글에 검색을 하고 userpassword-passwds-phpbb.txt순으로 들어간다.





그리고 리눅스 창으로 가서 wget함수를 쓰고 URL을 복사해서 저렇게 넣어주고 실행해준다.



버프스윗으로 가서 Payloads쪽에 타입을 이번엔 SimpleList로 지정해주고 받은 파일 phpbb.txt를 그대로 로드해준다.



그리고 Positions탭으로 와서 Start Attack을 실행해주면 다음과 같은 화면이 나오면 정상적으로 실행된 것이다. 저런식으로 자주 사용되는 비밀번호들을 하나씩 찾아내게 된다. 이 또한 엄청 오래 걸리기 때문에 그냥 하는방법만 제시해 놓을 생각이다. 


(4)  Broken Auth - Password Attack



password attack도 크게 다른 내용은 없다. 보안레벨이 Low로 되어 있으면 아무거나 입력해도 바로 로그인이 되는 현상이 발생한다.



반면 보안레벨을 High로 맞춰놓고 했을시에 캡차가 나오게 되는데 이렇게 되면 Bruth Forcing이 불가능해져서 비밀번호를 알아내기 힘들어지게 된다. 사용자가 보고 일일히 입력을 해야 하기 때문이다.



인증결함방식 공격도 좀 다양했는데 항상 사용자 인증, URL 취약점 노출에 주의해야 한다고 생각한다. 인증결함방식에 대한 이론도 많기 때문에 조금 더 찾아보고 공부해보면 좋을 것 같다.





반응형
LIST

'웹해킹 > Bee-box' 카테고리의 다른 글

Xss공격(Stored)  (0) 2017.12.29
세션결함  (0) 2017.12.29
XML/XPath 인젝션  (0) 2017.12.28
Blind SQL 인젝션  (0) 2017.12.28
메타스플로잇(기초)  (0) 2017.12.28
블로그 이미지

만년필석사

,