이 문제만 이틀동안 봤는데도 해결을 못했다 ㅠㅠ끝나고 올라온 writeup을 바탕으로 해결한 과정을 적어놓겠다. 일단 이 문제는 wasm(웹 어셈블리)문제이다.문제 접속하면 rust를 컴파일하라고 하고 js파일과 wasm파일 두개 올라온게 끝이다.일단 rust를 컴파일해서 wasm 파일을 만들면은 wasm파일을 import하기 위해 js와 같이 써야한다.요 부분이 그부분이다. 그다음 wasm파일을 디컴파일도 해보고 별짓을 다했는데 해결을 못했다.writeup을 보니 js파일에 state를 지정하는 부분이 있었는데 요 부분이 다시보니 의심스럽게 생기긴 했다. imports.wbg.__wbg_state_3308b4f9bac86286 = function(arg0) { const ret = g..
Predic's Study BLOG
1. Cat Raterfrom flask import Flask, render_template, session, request, redirect, flashimport subprocessimport secretsimport randomimport redisimport uuidimport osimport reapp = Flask(__name__)app.secret_key = secrets.token_bytes(32)flag = os.environ.get('FLAG','ASIS{test-flag}')rds = redis.Redis(host='redis', port=6379)uuidReg = re.compile(r'^[\da-f]{8}-([\da-f]{4}-){3}[\da-f]{12}$', re.IGNOREC..
간단하게 작성하겠다. #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30);}int main(int argc, char *argv[]) { char buf[0x80]; initialize(); printf("buf = (%p)\n", buf); scanf("%141s", buf); return 0;}0x70 + ..
잠금되어있는 writeup들이 있습니다.이전 포스팅된 글들은 비밀번호가 랜덤값으로 설정되어있는데이제부터 잠금 비밀번호는 FLAG앞 10자리 혹은 그냥 FLAG값으로 설정해놓겠습니다. 혹시 잠금된 writeup중에 궁금한 점이나 힌트 원하시는 분들은 아래 연락처로 연락주시면 답변드리겠습니다. Mail : cmk0487@naver.comDiscord : kmc0487
처음으로 참가해본 Sekai CTF인데 처음 접속했을때 ui가 남달라서 너무 재밌게 풀었다.문제난이도는 지금 실력에선 아직 좀 힘들었던것 같다.일단 내가 푼 문제들 writeup을 올리겠다.1. Tagless 말그대로 Tag를 못쓰는 문제이다. 저 message 부분에 글을쓰면 innerHTML로 값이 들어가 XSS취약점이 터진다.그런데 app.js 코드를 보면은 왜 Tag를 못쓰는지 알 수 있다.function sanitizeInput(str) { str = str.replace(//igm, '').replace(//igm, '').replace(/.*/igm, ''); return str;}꺽쇠로 열고 닫힌 부분의 값을 전부 삭제하는 코드이다. 이부분은 가볍게 bypass할 수 있는데 그..
이번 CCE 예선에서 solver가 0명인 문제이다나도 한 두시간? 정도 잡아서 풀어봤는데 첫번째 필터링조차 우회하지 못하고 포기했다....끝나고 Writeup이 올라왔길래 한번 정리해서 작성해본다.// admin_login.phpquery($query); $data = mysqli_fetch_array($result); } catch(Exception $e) { } isFirstLoginAttempt(); if (isset($data) && $data[0] === bin2hex($_POST["username"]) && $data[1] === bin2hex($_POST["password"]) && !$_SESSION['first_att..
첫 CCE 대회였는데 하필 여행일정에 대회날이 겹쳐서 차에서 대충 몇문제 풀었다... 대충 본문제는 네문제였고 그중 한문제는 좀 복잡해서 따로 공부좀 하고 Writeup을 올리겠다. 1. OSJarvis자바로 짜여진 웹인데 활성화 되어있는 기능은 파일업로드 한가지 뿐이었다.파일 업로드 코드는 다음과 같다.public String execute() throws Exception { if (uploadFileName != null) { try { String uploadDirectory = System.getProperty("user.dir") + "/uploads/"; File destFile = new File(uplo..
toctou 문제이다. 일단 baby toctou와 비슷하게 cat flag.php는 못한다.api.php내용은 다음과 같다. webhacking.kr 이나 202.182.106.159로 온 응답이 아니면 exit된다.이제 이건 dns rebinding attack으로 우회할 수 있는데 dns rebinding attack은 dns를 리바인딩 했을 때 ip 가 두개 이상이 리턴되면서 예상했던 ip와 다르게 공격자의 ip로 요청을 보낼 수 있다. 뭐 ssrf나 sop 우회등에 쓰이는데 인터넷에 자료 참고하면 될것 같다.https://lock.cmpxchg8b.com/rebinder.html rbndr.us dns rebinding service lock.cmpxchg8b.comrebinder 사이트이다. ..
제목이 NotSQL인걸 보니 NoSQL 문제인듯 하다일단 사이트의 no 쿼리에 1과2를 날릴 수 있고 그 외엔 뭐 찾을 수가 없었다.그래서 일단 개발자도구의 스크립트가 있길래 그걸 봐줬다. function getQueryVar(variable) { var query = window.location.search.substring(1); var vars = query.split('&'); for (var i = 0; i ${res.data.view[i].subject}`; }}else{ q = `query{ view{ no, subject, content } }`; xhr = new XMLHttpRequest(); xhr.open("GET", "..