본문 바로가기

CTF_/HackCTF14

[HackCTF] LOL [LOL] _ SSRF - URL 은 flag.php 이지만 local이 아니라고 한다.- 나중에 local로 flag.php에 접속하면 되는것 같다. - just play have fun enjoy the game을 누르면 나오는 page다.- user에 아무거나 입력하고 제출을 해보자. - 엥.. op.gg 가 나온다. 코드를 확인해 보자. - url의 value에는 op.gg 페이지가 들어있다.- 작동 방식은 http://www.op.gg/summoner/userName= + (입력한 값) 으로 되는것 같다. - SSRF 를 하기 위해서는 @를 사용한다. 그러면 @ 이전의 값들이 무시가 되고 그 이후의 값으로 page가 이동이 된다.- url의 value값에 127.0.0.1 을 넣어봤지만 필터링을.. 2020. 2. 25.
[HackCTF] Cookie [Cookie] - 쿠키가 맛있어 보인다. 쿠키를 확인해보자. - 가장 수상한 쿠키다.- Cookie를 보면 뭔가 Base64 같은 느낌이 난다.. - Base64로 3번 디코딩을 하니 저런 문자열이 나왔다. - admin으로 변경하여 다시 Cookie값을 변경하여 보자. - 패스워드가 틀렸다고 한다. - 이 값을 가지고 무언가를 하는것 같은데..- 도저히 몰라서 구글링을 했다... - 사실 이 문제도 Input Check 문제처럼 strcmp 취약점을 이용하는 문제였다.- PassAdmin을 배열형식으로 보내면 strcmp를 우회할 수 있다.https://security-nanglam.tistory.com/309 2020. 2. 25.
[HackCTF] 가위바위보 [가위바위보] - 가위바위보는 게임기능 말고는 별게 없는 것 같다. 설정을 들어가자. - 설정에 들어왔다. 이름은 변경이 잘되고 사진도 잘된다. - 사진에 php 파일을 넣었더니 이미지 파일이 아니라고 한다.- 또한 php파일을 png로 확장자를 변경하여 넣어도 이미지 파일이 아니라고 한다. - 이미지를 smile.png -> smile.txt 로 변경하여 업로드 해보니 사진이 변경되었다.- 파일의 헤더를 검사하는 기능이 있는것 같다. - shell.php 앞에 png 헤더를 붙여서 다시 업로드 해보자. - 업로드가 잘 되었지만 파일이 열리지 않았다. - 파일은 http://ctf.j0n9hyun.xyz:2037/avatars/현재이름 에 저장되어 있다.- 내 이름에 확장자를 붙여보자. - 파일이 잘열린.. 2020. 2. 25.
[HackCTF] Home [Home] _ XFF 변조 - 인증되지 않은 IP 주소라고 한다. 그리고 일부 IP를 필터링하고 있다고 한다. - 여러 자료들을 검색하다가 나온 것이다.- XFF 를 이용하면 원래의 IP 주소를 속일 수 있다고 한다. - 형태는 위와 같다. X-Forwarded-For : 127.0.0.1 - BurpSuite를 사용하여 헤더를 추가하여 보냈다. - flag가 딱! 관련 주소- https://ko.wikipedia.org- http://boansecurity.blogspot.com 2020. 2. 25.
[HackCTF] Input Check [Input Check] - flag를 원하면 flag를 입력하라고 한다. - flag를 입력 해보니 No Hack~ 이라 뜬다. - 소스를 보니 주석으로 힌트가 있다.- Array Type check 취약점에 대해 검색을 해보니 strcmp의 취약점이 나왔다.strcmp에서 array 값을 넣으면 php 버젼별로 결과값이 다르다.php 5.2 : 1 or -1 (Array를 문자열로 인식)php 5.3 : null null == 0 이 되므로 true가 된다. 단, null === 0은 falsepost 방식으로도 취약점이 발생한다고 한다.참조 블로그 : https://hackability.kr/ - Array 형태로 flag를 입력하면 flag가 나온다. 2020. 2. 24.
[HackCTF] Time [Time] - 시간이 60*60*24*30*2보다 크고 60*60*24*30*3보다 작으면 flag가 출력된다. - 6480000을 넣어서 해봤지만.. sleep 함수 때문에 저 초동안 기다려야 했다.- 이 방법이 아닌것 같아서 is_numeric 함수의 취약점을 찾아봤다. - 우선 문자열로 넣었을때, 지수 표현도 숫자로 표현이 가능하다는 점이다.- 마침 sleep함수에는 int로 형변환을 하니, 지수 표현을 통해서 if문을 넘어가고 sleep을 조금만 하면 될 것이라 생각했다.- sleep에서 int로 형변환을 하면 소수가 날라간다. (e는 문자열이라 오류가 뜬다.)- ex) 0.648e7 = 0초- ex) 6.48e6 = 6초 - 시간이 60*60*24*30*2보다 크고 60*60*24*30*3보다.. 2020. 2. 24.
[HackCTF] 마법봉 [마법봉] - 해쉬에 마법을 부여한다.. 매직 해쉬가 바로 떠올랐다. - if 문을 보면 240610708을 md5로 암호화 하고, input 값을 sha1로 암호화 한뒤 비교를한다.- md5(240610708)의 값이 0e 로 시작하기 때문에 이 값은 int == int 비교를 할때 0으로 인식된다.- 즉, sha1 암호화를 하면 0e로 시작하는 값을 찾으면 된다.- 이 두값을 비교하면 int == int 이기 때문에 0 == 0 이되어 true 값이 된다.- 0e123 = 0^123 = 0 - 10932435112값을 입력하면 flag가 나온다. 참고 블로그https://rootable.tistory.com/ 2020. 2. 24.
[HackCTF] Login [Login] - View Source를 눌러보자. - 필터가 없고, id 값을 꺼내오면 된다. - 기본적인 sql injection 구문을 날리면 flag가 나온다. 2020. 2. 24.
[HackCTF] Read File [Read File] - command에 주소가 있는것으로 보아 LFI가 생각났다. - flag.php를 읽으라 그래서 flag.php를 입력하니 빈창만 뜬다. - 아무 값이나 넣어도 똑같이 뜬다.- 이 경우 유추할 수 있는게 flag값을 다른 문자로 교체하거나, flag 자체를 막는 것으로 생각할 수 있다. - 혹시 몰라 fflaglag.php를 입력했는데 flag.php가 읽혔다. - 아마 flag 문자열을 삭제하고 나머지 값으로 파일을 읽는것 같다. 2020. 2. 24.
[HackCTF] Guess me [Guess me] - guess와 secretcode가 같으면 문제가 풀리는 문제다. - secret.txt에 들어가보니 그렇게 쉽겐 안된다고 한다... - extract에서 취약점이 발생할 것 같아 검색을 해봤다.- 취약점은 extract전에 변수가 선언되어 있을 때, 같은 변수명으로 한번더 선언하면 초기값이 변경된다. - filename=a 를 전송하면 $filename = 'a' 가 되고, trim 함수에서 아무 값도 가져오지 않는다.- $secretcode에는 아무값도 안들어 가게 되고, guess= 빈 값을 주면 $guess === $secretcode가 참이 되어 flag가 나온다. 2020. 2. 24.
[HackCTF] 보물 [보물] - 페이지 숫자 중엔 비밀이 있다며 찾아보라고 한다.. - Page1을 누르면 get 방식으로 page=1을 전송하고 아래에 해쉬값이 나온다. - 이 문제는 예전에 한번 봤던 문제여서 바로 코드를 짜봤다.- 해쉬값은 쓰레기값이고, page를 돌아 다니다 보면 flag가 나온다. - 실행을 하면 page=1225에 플래그가 있다고 한다. 2020. 2. 24.
[HackCTF] Button [Button] - 아래 버튼을 눌러서 플래그를 출력하자...! - value 값을 button -> flag로 변경하여 flag를 보내보자. - 오잉 플래그가 나왔다.. 2020. 2. 24.
[HackCTF] Hidden [Hidden] - 5번 파일에 플래그가 있다고한다. 소스코드를 확인해보자. - value값들이 1, 2, 3, 4 로 되어있다. 5번 버튼도 만들어주자. - 5번 버튼을 form태그로 만든후 버튼을 클릭하면 flag가 나온다. 2020. 2. 24.
[HackCTF] / [/] - 접속하면 로봇이 나를 반겨준다.- robots.txt를 확인해보자. - /robot_flag/를 확인해보자. 2020. 2. 24.