본문 바로가기
정보보안(웹해킹)/기타

인증/인가 취약점

by 끊임없는정진 2022. 12. 30.

▶인증/인가 취약점

-인증: '내가 나다!'라는 것을 증명하는 것. ex. 본인인증, 비밀번호 인증 bypass

-인가: '허락!해도된다!' 어떤 행위를 하게 허락해주는 것. ex. 내가 할 수 없는 것을 할 수 있게..

-> 파라미터 변조로 확인, 웹 패킷 분석

-인증/인가 예시 : 키오스크에서 쿠폰적립-결제 순으로 있을 때

 

▶방역패스 인증

-wifi 재밍을 QR인증할 때 사용하면, 주인장이 그냥 보내줄수도..?

 

▶인증/인가 문제풀이 예시

(1) gogoHack : 검증 쿼리 예상해서, 뭔가 들어갈수도? 아닐수도? SQL Injection? -> X

step1 -> 2 -> 3 : 인증 통과!

보통 회원가입에서 발생

step1: 약관동의 -> step2: 본인인증 -> step3: 회원가입

agree.php -> auth.php -> register.php

 

(2) gogoHack2 : 주석에 주의!

1. 응답값을 Intercept 후 수정! (주석 부분 풀기)

2. 그냥 해당페이지에 요청

※ Response 편집하는 방법

1. Burp suite -> proxy -> option -> Intercept Server Responses 체크하면응답도 잡힘.

혹은 Intercept 후 오른쪽 클릭 -> Do intercept -> Response to this request -> 응답을 Intercept 가능.

 

(3) Java auth : 서버or 클라이언트에서 검증하는지 알려면 'Intercept'를 켜놓고 해볼 것. 만약, 여전히 필터링이 된다면 client측에서 검증되는 것임.

버튼 소스를 분석하면, href='#'(앵커) onclick="goMunu('1018','')"(이벤트 핸들러), goMenu를 Burp Suite에서 복사해서 찾아보면 해당페이지에는 2개가 등장한다. 그러나 해당 함수를 선언하는 부분은 찾을 수 없다. 

-> Javascript 추적 : <script src="~.js"> 찾기. 총 3개가 등장. 실제로 10개건 30개건 전부 분석해야 함!

※Tip! 찾고자하는 함수를 찾기에 복붙하고 파일을 이동해도 매치가 되면 파란색으로 알려줌(Burp Suite)

-> user.js에 있구나! -> goMenu 1018 -> user_auth_check -> 둘의 값을 비교하는 거구나! -> 링크

풀이법 1. Intercept로 응답값에 GoMenu함수에 ('1018','admin')으로 편집하기

풀이법 2. console란에 해당 함수를 goMenu('1018','admin')치면 클리어

※js파일이 Burp Suite에 안뜨는 경우?

1. 버프 필터링 : Filter settings -> "Filter by file extension'에서 Hide를 검증, js,gif,jpg,png,css 체크시 필터링

2. 캐시: 웹브라우저가 js파일을 한번 로드하면 캐시저장. -> F12 후 '캐시 비우기 및 강력 새로고침' 사용

3. If-modified-since, If-None-Match가 Burp suite -> proxy -> option -> Match and replace 체크 설정되어있으면 "Not modified" 오류가 뜸

 

(4) 자바 난독화

jsbeautifier 페이지를 이용하면 가벼운 난독화는 풀기 가능. 그리고 동적분석이 필요(직접 실행해보면서 비교)

 

(5) 공지사항 글쓰기

글쓰기 버튼이 없다? -> 소스코드 확인(주석부분) -> 읽을 때 소스코드를 확인(notice_read.php) -> 이름을 막 지을수는 없으니,, notice_read.php... notice_write.php? 추측가능. notice_post.php, notice_create.php 도 가능하겠구나!

-> 짬으로 guessing능력은 쌓임. 많은 경험!

 

(6) 공지사항 읽기

예상외로 notice_read.php 의 id 파라미터 위조로 읽을 수 있는 경우가 많음 (but) 해당 페이지는 X

글 데이터 로드위치 : 1) 글 읽기 2) 글 수정 -> Intercept로 잡고 response 측 리다이렉스 script를 지우면 읽기 가능 3)글 미리보기(썸네일, 리스트)

 

▶인증/인가 대응방법

서버에서 잘 검사해라! 서버의 세션을 통한 검증을 사용해라! 서버측 검증코드 구현해라! 

 

'정보보안(웹해킹) > 기타' 카테고리의 다른 글

[PHP 취약점] 총 정리  (0) 2023.01.05
CRLF injection  (0) 2022.12.22
CSS Injection  (0) 2022.12.19
[PHP취약점] php wrapper  (0) 2022.11.26

댓글