목록CTF Writups (25)
White Security
b00t2root 2019 web 1번 PHP Type juggling, unserialize 취약점 문제입니다. 페이지에 접속하면 highlight_file 함수에 의해 소스가 출력되는데. 그 아래를 보면 $_GET['1']과 md5($_GET['1']) 을 비교하고 있습니다. md5에는 해싱 이후에도 동일한 0e[0-9]+ 형식이 반환되는 매직 해시가 존재하는데 http://3.16.68.122/Easy-php/?1=0e215962017 둘 모두 지수표현으로서 매우 작은 값이므로 이 매직 해시와 php의 느슨한 비교 취약점을 사용하면 비교문을 통과할 수 있습니다. 다음은 $_GET['2']와 $_GET['3'] 을 인자로 사용하는데 엄격한 비교 연산자 !== 를 사용해 둘이 모두 같지 않아야 하고 숨..
React 사이트를 잘못 설정 한 것 같다고 합니다. 사이트가 주어지는데링크들은 모두 더미 링크로어떤 힌트도 얻을 수 없었습니다. 그러던 중 소스코드에 flag가 하드코딩 된 것을 확인할 수 있었습니다 ;; 더 난독화하거나서버를 통해 인증을 한다거나 했으면 좋았을텐데뭘 해볼것도 없이 소스코드에 그대로 나와있으니씁쓸합니다.
75점의 purvesta 문제입니다.깃허브로 페이지를 호스팅 할 수 있으면 좋겠다고 합니다. 그런데 깃허브에선이미 페이지 호스팅을 하고 있지요? 깃허브 페이지는 기본 도메인이github.io 로 끝난다는 것을 기억해보면 purvesta.github.io 페이지에서자료를 확인할 수 있습니다. 페이지의 링크를 따라가니플래그를 확인할 수 있었습니다.
자바스크립트로 유저를 인증하도록 했다 합니다.링크가 하나 주어지네요. 링크에 접속하면로그인 폼이 하나 보입니다. // reference here // https://api.jquery.com/jQuery.ajax/ // https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/atob // For element with id='name', when a key is pressed run this function $('#name').on('keypress',function(){ // get the value that is in element with id='name' var that = $('#name'); // make an aj..
Das Blog 에서 개선된 문제라고 합니다. 이전과 마찬가지로 로그인 페이지가존재하는 것을 볼 수 있습니다. 폼도 동일하고심지어 완전히 같은 쿼리로플래그를 얻어낼 수 있었습니다. submit=Login&Password=&Username=' union select group_concat(0xa,a,0x3a,b),2 from (select title a,content as b from posts)x;%00
Johnny 가 블로그를 개설했는데입력을 escape 하는 방법을 모르겠다고 합니다. 링크에 접속하면인삿말과 함께 로그인 페이지에 접속이 가능합니다. 로그인 폼은 별다를 것이 없습니다. There was a problem when looking for user. Please try again.Sorry, That Username / Password is incorrect. Username에 싱글 쿼트를 삽입하면 쿼리 오류가 뜨는 듯 한데주석을 넣기 위해 '#', '-' 등 특수문자를삽입하면 검색오류로 바뀝니다. 이것을 보아, 쿼리 검색을 하기 전에지정된 문자가 있는지 확인하고 있다면검색 오류를 뿜고 바로 넘겨버리는 것이 아닌가생각해 볼 수 있습니다. submit=Login&Password=&Usernam..
문제를 보면 '==' 로 끝나는문자열이 하나 주어져 있습니다. base64 문자열이 종종 '=' 로 끝나곤 하죠. 물론 그렇지 않은 경우도 있지만,암호화 방식과 관련이 있습니다. 본래 8비트씩 붙어있던 데이터를 분리해다가6비트씩으로 재결합 하다보니 남는 비트수를 표현하기 위해붙는 것이 '=' 입니다. 자세한 설명은 여기를 참고하시면 되겠습니다. 단순히 데이터의 바이트 수가 3배수가 아니면모조리 '='가 붙는다고 알아두어도 상관은 없습니다. flag{D1d_y0u_d0_th3_Pr3_CTF} base64 복호화를 거치면 플래그를 얻을 수 있습니다.
링크가 하나 주어집니다. 접속하면 위와 같은 텍스트가 하나 나오네요. 그리고 이름대로쿠키가 하나 주어집니다. Red Guy 의 입력해 달라고 하는데처음에는 단서가 없어 어쩌나 했는데 Cookie monster 라는 것이 본래 있는서양 TV 프로그램 이름이더라구요. 찾아보니 빨간 몸통을 가진 녀석의이름은 elmo 였습니다. 따라서 쿠키에 elmo라고 입력해주면 You got it! flag{YummyC00k13s} 플래그를 얻을 수 있습니다.