본문 바로가기

해킹

(122)
로그인 우회 CTF 풀이 # 3 평범한 로그인 창이지만, 로그인 로직이 여러가지이기도 하고, 에러메시지를 출력하지 않으므로 SQL 문의 형태가 어떨지 추측해야만 한다. 여기서 normaltic3 계정으로 로그인해야만 한다. 주석처리가 먹히는지 한번 테스트를 해본다. 택도 없음 항등원에 주석까지 넣어서 테스트를 해보자 택도 없음 항등원만 넣어서 테스트를 해보자 택도 없음 union 구문을 한번 써봤다 ???!?!?! 풀렸다 개행인지 테스트를 해보기 위해서 주석도 처리해보았는데, 이것도 로그인 우회가 되었다. 어떻게 sql문이 되있을지 추측해봤다 기본적인 식별 / 인증 동시인 SQL 구문이다. select id, pass FROM member WHERE id='' AND password = ''; 라고만 되어있었다면 normaltic3' ..
DB 데이터 추출 CTF 풀이 DB 데이터 추출 1 문제 게시판 형태의 CTF이다. 여기서 SQL Step을 한번 밟아보자. (1) 추측 Adminer가 포함하고 있는 알파벳 중 min을 쳤을 때 과연 Adminer가 출력될까? 출력된다. min을 포함하고 있는 데이터가 출력되는 것을 확인했다 이로써 =이 아니라 문자열 포함 데이터를 출력해주는 like절 구문을 사용하고 있을 것이라 생각할 수 있다 select "" from "" where id like '%@@@%' 의 형태를 가지리란 것을 추측할 수 있다. (2) 취약점 확인 mario%'# 라고 입력했는데 mario가 출력되는 걸로 보아 SQL Injection 공격이 먹히고 있는 것을 알 수 있다. 확인차 mario%' and '1%'='1 이라고 입력했을 때도 mario가 ..
로그인 우회 CTF 풀이 #4 또 똑같은 로그인 창이지만 어떤 로그인 로직을 가지고 있을지는 알 수가 없다 사실 주석이나, 개행처리를 예상하지는 않았다 3번에서도 안되었고 그걸 출제의도로 냈을 것 같지 않았기 때문에 해시함수를 의심했다 또, 식별 / 인증 동시 CASE라면 주석 처리 한 방에 해시함수가 날라가므로 식별 / 인증 분리 CASE일 것이라 추측했다 근데 어떤 해시함수를 썼을지를 일단 알 수가 없다는 것이었다 크게 사용하는 해시함수는 두가지이다. MD5 와 SHA256 구글링을 하면 원하는 문자열을 해시화할 수 있다. 저기서 우리가 주입할 비밀번호를 해시화해두자 둘 중에 찍어서 MD5를 먼저 실행해보았다 일단 기본 틀은 SELECT password FROM member WHERE id=''; 일 것이고 password는 사용..
[4주차] 스터디 정리 - Union Based, Error Based SQL Injection * 웹 개발 -> 백엔드 코드가 더 중요함 -> bootstrap이란 좋은 사이트도 있음 -> 문제풀이 write-up 1) 만든 사이트 2 ) flag : 정답만큼은 모자이크하는 게 좋음 -> CTF 문제. : 정답보지 않는다. ------------------------------------------------------------------------------------ ** Review > 로그인 인증 - 식별 / 인증 > SQL Injection : 공격자 SQL 삽입하는 공격 : 데이터 추출도 가능함 ( SELECT ) * SQL Injection 데이터 추출 1 ) SQL 질의문이 화면에 보이는 곳 ex ) 게시판, 회원정보 (마이페이지), 주소 검색, 검색 페이지 등등... -> UNI..
[3주차] 스터디 정리 - SQL Injection response 패킷도 데이터를 변경할 수 있다 result : fail -> ok로 바꿀 수 있음 script 태그로 감싸진 javascript 코드도 response에서 변경할 수 있음 intercept is on 잡아서 Do intercept -> do response ~~ 클릭하기 브루트 포스 문제 취약점: 로그인 인증 횟수를 제한하고 있지 않음 **유명한 프록시 툴 burp suite - GUI 방식 fiddler (window에서만 돌아감) -> 쓰기 어려움 mitmproxy - CLI 방식 ** SQL ** DB : 엑셀 그 자체임 database ex : 이름 컬럼 / 전화번호 컬럼 / email 컬럼 SELECT id FROM member column : 열 row : 행 2행 3열에 해..
[2주차] 미스테이크 문제 풀이 CTF 이번에 풀어볼 문제는 미스테이크이다 로그인 우회와 마찬가지로 admin 계정으로 로그인해야하는 문제이다 문제는 같을지 몰라도 구성 페이지의 데이터가 다를 것이다 링크로 입장하면 로그인 화면 창이 뜬다 새로고침을 한번 하면 다음과 같은 페이지들을 불러오는 것을 알 수 있다 mario 계정으로 로그인을 한 번 해보자 다음과 같은 창이 뜬다 로그인 프로세스를 살펴보았을 때, 넘어가는 듯한 페이지가 없으므로 login.php -> index.php로 간다고 볼 수 있다 그럼 intercept 만으로도 쉽게 변조가 가능할 것 같다는 판단이 선다 id 와 비밀번호까지 치고 Sign in 을 아직 누르지 않은 상태로 intercept를 on 시키자 그럼 보낸 데이터가 담긴 패킷이 날라올텐데, 여기의 UserId를 m..
[2주차] 미스터 브루트 문제 풀이 CTF CTF 과제를 풀면서 들어갈 때마다 ctrl + shift + del 를 하는 습관이 생긴 것 같다 쿠키를 지웠을 때 session id를 새로 발급받는 것으로 보아 4번 문제에서 login을 했다는 정보가 쿠키로 남아있나보다 6번 문제는 미스터 브루트라는 문제다 처음 들어가면 이런 창이 뜬다 HTTP 히스토리를 한번 살펴보자 첫 화면에서 새로고침을 누르면 이런 페이지가 불러온다 아직은 별 단서가 없는 것 같고 login.php에서 index.php로 repeater를 통해 바꿔보았지만 아무런 소득이 없었다 1000이라는 숫자를 잡아 한번 대입해보자 1000 입력! 그럼 Login Fail.... 이라는 alert가 뜨면서 url이 checkOTP.php?otpNum=1000 이라고 바뀌는 것을 볼 수 ..
[2주차] 로그인 우회 풀이 - 불충분한 세션 관리 취약점 ** 불충분한 세션 관리 취약점 : 웹 상에서 사용자가 로그인을 할 시,매번 동일 세션 id 발급 (또는 일정 패턴 존재) 또는, 세션 타임 아웃을 너무 길게 설정한 경우, 공격자에 의해 세션이 탈취될 수 있는 취약점 ------------------------------------------------------------------------------------ 로그인 화면을 분석해보자 ctrl +shift+del을 눌러 쿠키를 제거한 후, 새로고침을 하면 기본적으로 이 페이지가 처음에 어떤 페이지들을 불러오는지를 볼 수 있다. 주어진 아이디와 비밀번호를 가지고 로그인을 시도해보면 loginProc.php 가 불려오면서 index.php로 넘어가는 것을 볼 수 있다 처음에는 mario 계정으로 접속..