Web
-
[Web] EasyPhpCTF write_up/b00t2root CTF 2019. 4. 2. 20:10
문제가 총 3가지 이므로 나눠서 이야기 하겠습니다. 이 문제는 ?1=입력할값의 형태로 url에 값을 넣어야 하는데 입력한 값과 md5(입력한값) 같아야 합니다. 이럴때 php magic hash를 사용해야 하는데 원리는 이렇습니다. if($str1 == md5($str))은 == 으로 값을 비교하기 때문에 느슨한 비교 연산자 입니다. '3' == '3.0' 의 반환값은 True인 참 입니다. 하지만 '3' === '3.0'의 반환 값은 False인 거짓입니다. 이를 이용해서 값을 정하면 됩니다. 우리가 1.2e3이라는 부동소수점을 입력할때 1.2 * 10^3 이라는 값을 의미하는데 우리가 입력을 할때 0e + 어떤 값 이라고 입력을 하면 뭐든지 0 * 어떤값 의 형태가 되기 때문에 ==(느슨한 비교 연산..
-
[Web] AuthenticateCTF write_up/Hack CTF 2019. 3. 29. 19:50
URL에 들어가면 다음과 같이 나옵니다. 그리고 소스를 확인해 보면 다음과 같습니다. 난독화는 아니지만 처음 볼때 복잡해 보입니다.. 그리고 계속 눈에 밟히는.. 부분 위의 코드를 보면 입력한 cuser와 func의 문자열이 XOR를 하는 듯해 보였습니다. 일단.. 코드를 보면서 암호화 복호화가 계속 떠올랐는지 id인 cresponse를 암호화 복호화의 키값으로 인식하고 그 값을 먼저 코드에 넣어서 확인해 봤습니다. JS를 주로 다루지 않아서 컴파일러는 크롬의 개발자 도구의 콘솔로 하였습니다. 나온 결과값을 유심히 살펴보는 도중 다음과 같은 문자열을 발견했습니다. dumbh4ck5?.. Username으로 뭔가 잘어울리는 문자열이였습니다. 마침 코드에서 Username은 9글자라고 했습니다. 암호화해서 ..
-
[Web] CookieCTF write_up/Hack CTF 2019. 3. 29. 16:22
사이트에 들어가 보면 다음과 같은 쿠키가 나옵니다. 다음과 같이 나오는데 쿠키문제 여서 쿠키값을 확인해야 합니다. 쿠키값을 확인해 보겠습니다. 2개의 쿠키값이 새로 생겼습니다. 쿠키의 값이 암호화 되어있는거 같아서 base64 복호화 해보겠습니다. 복호화 한 결과 다음과 같은 문자열이 나왔습니다. 복호화 값 : {"id":"2","type":"guest"} 그 값을 {"id":"1","type":"admin"} 로 바꾼뒤 다시 인코딩 하면 나옵니다. 인코딩 값 : WlhsS2NGcERTVFpKYWtWcFRFTktNR1ZZUW14SmFtOXBXVmRTZEdGWE5HbG1VVDA5 위의 값을 쿠키에 넣어보면 다음과 같은 웹사이트 모습을 볼수 있습니다. 다음과 같이 admin 패스워드를 맞춰야 하는것 같습니다..
-
[Web] No PasswordCTF write_up/Hack CTF 2019. 3. 28. 18:31
위의 사이트에 들어가 보면 다음과 같습니다. ↑ http://ctf.j0n9hyun.xyz:2029/ 패스워드가 없는 로그인 이라고 적혀 있는 것을 보니 권한을 획득하면 되는것 같습니다. 액세스 거부! 라는 문자열을 보고 저는 참과 거짓을 저 문자열을 통해 알려주는 구나 라고 생각 했습니다. 프록시 툴로 웹페이지를 확인해 보니 User-Agent가 있는걸 확인했고, sql injection 공격기법을 이용해서 참의 값을 보내기로 했습니다. 액세스 거부! 문자열이 환영합니다! 로 바뀐것을 알수 있습니다. 그렇다는 것은 참과 거짓을 판별해 주는 문자열이 생긴 것을 의미합니다. User-Agent 를 이용해서 db의 이름 및 테이블 명 등등 여러가지를 찾아 보겠습니다. sql과 관련된 툴인 sqlmap을 이용..
-
[Web] Buy ItemCTF write_up/Hack CTF 2019. 3. 27. 00:33
위의 화면에서 회원가입을 해서 들어갑니다. 우리는 회원가입 덕분에 5000 스코어를 얻게 되었습니다. 하지만 우리가 사야할 동현이네집 고양이의 스코어는 99999입니다. 어떻게 사야 할지 고민하고 있었는데 프록시 툴인 버프스위트(버프 스튜)를 이용해서 각 버튼에 no값이 다르다는 것을 알게 되었습니다. 다음과 같이 말이죠. 그렇다면 스코어 1000인 김정삼을 구매해 보겠습니다. no=1이네요 그렇다는 것은 동현이네집 고양이를 구매를 누른후 값을 no=1로 하면 구매가 가능해 질것 입니다. Flag : HackCTF{동현이네집 고양이는 아주귀엽다!}