본문 바로가기

CTF_78

[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.
[SQL] Los.rubiya.kr 풀이 정리 [gremlin]query : select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}' - xbypass : 주석을 통한 우회url : id='||id='admin'--%20query : select id from prob_gremlin where id=''||id='admin'-- ' and pw='' bypass : 문자열 작성을 통한 우회url : id=' union select "admin"--%20 query : select id from prob_gremlin where id='' union select "admin"-- ' and pw='' [cobolt] #gremlin과 동일, 대신 gremlin은 admin이 아니여.. 2020. 2. 16.
[NeverLAN CTF2020] (Web) Follow Me [Follow Me] - 접속해보니 페이지가 작동하지 않는다고 뜨며 계속 이상한 주소로 리다이렉트 된다. - Burp Suite로 계속 넘겨가며 page 소스코드를 확인해보니 아래의 페이지에서 flag값이 뜬다. - 다른 페이지들은 소스코드도 없어서 많이 당황했던 문제다.. 뭔가 재밌는 문제였다 2020. 2. 15.
[NeverLAN CTF2020] (Web) SQL Breaker 2 [SQL Breaker 2] - 웹사이트에는 로그인 기능이 있다. - 1번 문제처럼 SQL Injection을 시도했다.- John이라는 계정으로 로그인이 되었으며, admin으로 로그인해야 flag가 보인다고 한다. - 또한 로그인이 틀렸을 경우 URL을 보면 get방식으로 보내는것 같다. (URL 캡쳐한 것이 없다..)아마 order 구문을 사용해서 desc로 변경하여 admin으로 로그인한것 같다.login.php?username=a' or 1=1 order by id desc --%20 (컬럼명이 id였다) 2020. 2. 15.