Nomaltic's Hacking Traning!!

Nomaltic's Hacking Traning!!

Login Bypass 4

normaltic4 계정으로 로그인하는것이 목표이다. mario/mariosuper가 아이디와 패스워드다. mario'# 으로 로그인이 되며 비밀번호가 다를경우 로그인 되지 않는다. mario' or '1'='1'#은 로그인되지 않는다. mario' #은 로그인되는걸로보아 공백은 문제가 아니다. mario' and '1'='1'#은 로그인이 된다. 결론적으로 or가 필터링 되어 추출되거나 or가 들어가면 로그인이 안된다는 것이다. 따라서 oorr을 넣어 or가 추출되는지 확인해보았다. 로그인되지 않는다. or는 추출되는것이 아닌 로그인 자체를 못하게 하는 것이다. or연산자인 ||또한 로그인 되지 않는다. 그러면 union select도 확인해보자. 우선 컬럼값을 알기 위해 3번문제에서 작성한 코드를 돌..

Nomaltic's Hacking Traning!!

Login Bypass 3-1

생각해보니까 이거 참 거짓으로 비밀번호를 통쨰로 뜯어올 수 있을 것 같다. import requests url = 'http://ctf.segfaulthub.com:9999/login3/login.php' for i in range(1, 101): payload = { 'UserId': f"mario' and length(database())={i}#", 'Password': 'mariosuper', 'Submit': 'Login' } response = requests.post(url, data=payload) if 'Warning' not in response.text: print(f"Found: {i}") break 다음 코드로 db이름 길이를 구했다. 13이다. 다음은 db의 이름을 구할것이다. ..

Nomaltic's Hacking Traning!!

Login Bypass 3

mario / mariosuper 아이디 비번이 제공되었고 normaltic3으로 로그인 하는것이 목적이다. mario'#을 넣어보니 로그인이 되지 않았다. 그렇다면 #, '이 사용불가이거나 로그인 로직이 sql문으로 아이디와 비번을 동시에 검색해서 그 결과값이 있는지 확인하는 방식이 아니란 것이다. 그렇다면 mario'#에 mariosuper을 넣어보도록 하겠다. 로그인이 성공적으로 된다. 즉, '나 #이 추출되거나 사용이 안되는 경우가 아니다. 그렇다면 sql문으로 아이디 혹은 아이디와 비밀번호 동시검색 후 비밀번호가 db의 비밀번호와 맞는지를 확인한다는 것이다. 이번에는 union select 문을 사용해보겠다. 다만 이 경우는 컬럼의 갯수와 어느 컬럼에 id와 password가 존재하는지 알아야 ..

Nomaltic's Hacking Traning!!

Login Bypass 2

여기서 목적은 normaltic2로 로그인 하는 것이다. 기본적으로 주어진 공격자 id, password는 mario와 mariosuper이다. sql injection을 위해 mario로 로그인을 하고 이를통해 로그인 로직과 sql문을 학인해보도록 하겠다. 우선 가장 쉬운 방법인 주석을 이용하기 위해 mario'#을 사용해보았다. 로그인 정보가 맞지 않을 때 뜨는 문구인 warming이 없는것으로 보아 로그인이 성공한 것을 확인하였다. 그렇다면 normaltic2 또한 같은방법으로 로그인 할 수있다. 성공적으로 flag를 빼앗았다.

Nomaltic's Hacking Traning!!

6. 미스터 브루트

0123을 그냥 넣어봤다. 바로 메인페이리로 리다이렉트된다. 바로 intruder로 보내서 0000부터 9999 까지 돌렸다. 그러나.. 한시간 가까이가 지났는데 600개.. 이건 코드 짜야된다. 5분만에 나왔다. 심지어 이 코드 다 짜고 돌릴때까지 burp swite는 2000개를 채 넘기지 못했다. 이렇게 로그인 성공. 아래는 파이썬 코드이다. # 파이썬에서 HTTP 요청을 보내기 위한 라이브러리 중 하나인 Requests 라이브러리를 가져오는 코드 import requests url = 'http://ctf.segfaulthub.com:1129/6/checkOTP.php' cookie = 'session=68748617-2024-4f43-a512-a0abd78d737e.KIJqW4N_2wR8M2at..

Nomaltic's Hacking Traning!!

5. 미스테이크

우선 로그인을 해보자. 4와 다르게 MIMEtype가 json인 respons에서 로그인 성공여부를 알려주지 않는다. 개발자모드를 이용해 페이지를 살펴보면 login.js가 없다. 혹시나 싶어 bootstrap.min.js를 뒤져봤지만 로그인 성공여부를 판단하는 코드가 없다. 그래서 그냥 admin으로 비밀번호 아무거나 로그인해봤다. 성공이다..

Nomaltic's Hacking Traning!!

4. 로그인 우회

우선 취약점을 파악하기 위해 Request와 Respons를 살펴보도록 하자. 주석으로 보면 두번쨰 페이지에 'Show password protected content down here' 라는 주석이 달려있다. 하지만 그곳에서는 Home, About, Contact라는 메뉴와 Segfault라는 저작권 정보가 포함된 푸터, IE10에서 발생하는 뷰포트 버그를 처리하는 스크립트를 로드하는것밖에 확인 할 수가 없다. 그런데 첫번째 페이지에서 userId가 매개변수값으로 받아가게 된다. 이를 변조하게 되면 다음과 같이 화면이 바뀌게 되는 것을 알 수 있다. 사실 여기서 잠깐 해매었다. 기껏 userId를 바꾸고 나서 새로고침을 하지 않아 화면이 바뀌지 않았던 것이다. 진짜 장난 안치고 이걸로 9시간 반 가량을..

잉여토끼
'Nomaltic's Hacking Traning!!' 카테고리의 글 목록 (2 Page)