▶인증/인가 취약점
-인증: '내가 나다!'라는 것을 증명하는 것. 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 |
댓글