상세 컨텐츠

본문 제목

Broken Auth(Insecure Login Forms, Password Attack,Week Password)

Hacking/Web Hacking

by it thief 2020. 2. 27. 15:58

본문

Broken Authentication

인증에 필요한 사용자의 계정 정보를 노출하는 취약점이다. HTML, GET 요청 URL에 변수 노출이나 취약한 암호를 설정, 취약한 인증 과정에 대해 취약점을 말한다.

 

Insecure Login Forms

Low

페이지 소스를 보면 "tonystark"와 "I am Iron Man"이 쓰여 있다. 관리자가 실수를 한 것에 대한 취약점이다.

 

Medium

Low 처럼 아이디는 brucebanner가 쓰여 있다. 하지만 패스워드에는 아무것도 안 쓰여 있는데 소스 페이지를 보면

unlock_secret() 함수가 있는데 secret이란 변수 값이 비밀번호이다. 

크롬의 관리자에서 console에 unlock_secret() 함수를 복사해서 alert함수로 실행시키면 "hulk smash!"라는 값이 나온다.(consle은 자바스크립트를 실행시켜준다.) 결국 서버에서 인증을 해줘야 하는데 클라이언트에서 인증을 해주는 경우에 이런 취약점이 나온다.

 

Password Attack , Week Password

패스워드 부분은 dictionary , bruteforce 공격에 대한 취약점 이다.

Dictionary : 많이 사용되는 패스워드를 파일에 모아서 하나씩 대입해보는 공격이다.

Bruteforce : a, b, c, d, e.... 값들을 하나씩 대입해보는 무차별 공격이다 

 

로그인 페이지를 BruteForce로 잡은 다음 Send to Intruder를 클릭한다.

Intruder탭에 가면 Positions에서 Sniper랑 Cluster bomb가 있는데 Sniper은 하나의 값만 공격하는 방법이고 Cluster bomb는 여러 값들을 공격하는 방법이다.

 

Postion탭에서 Cluster bomb를 선택하고(하나의 값만 공격할 것이면 Sniper선택) Clear $를 눌러준다음 자신이 공격하고 싶은 파라미터를 드래그한 후 Add $를 눌러준다.

 

Payload탭에서 Payload set은 지정한 파라미터를 선택하는 것이다 2개를 선택하면 2개가 있고 3개를 선택하면 3개가 있다. Payload type에는 Simple list(Dictionary)를 선택한다. BruteForce를 수행하려면 BruteForcer를 선택하면 된다. Load를 선택해 자신이 만든 Dictionary파일이나 원래 있는 Dictionary파일을 선택해 로드해주면 된다.(Dictionary파일은 많이 사용되는 아이디를 모아둔 파일이다.)

Attack을 하면 payload1 payload2에 차례대로 값을 넣으면서 공격한다. 이중 Length가 다른 것이 있을 텐데 그것이 아이디와 패스워드이다.(ID : test , Password : test)

 

'Hacking > Web Hacking' 카테고리의 다른 글

Session Management(Administrative Portals,HttpOnly,Secure)  (0) 2020.03.01
webhacking.kr 4번  (0) 2020.02.27
XML/Xpath Injection  (0) 2020.02.25
SQL Blind Injection  (0) 2020.02.25
SQL Injection(Stored)  (0) 2020.02.24

관련글 더보기

댓글 영역