정보보안/CTFLOG(25)
-
[CTF] B01ler_ctf - voidciphr
주어지는 것은 cipher.txt인데 내용은 PGTXD OD VXTMG XAT XFQG GA YMXAP RGXVTMAYQ X VXOOM XA XTLMVXF AGPGVMGNQ BGV RMQ FMASQ PG LXQGAVD X PVMG GB UXVTMAXFQ X PVMG PGG GB MAQMYAMBMUXAP ZGFMPMUMXAQ OGNYRP XAT ZXMT BGV OD X VMUR XAT UGVVNZP XAYFG UXAXTMXA OXASMAY UGVZGVXPMGA MABGVL NQ XFF GB RGJ GNV UGNAPVD AGJ VMQSQ TDMAY GB QPXVKXPMGA X VNLGV PRXPQ LD MAMPMXF PRGNYRP XQ M QJMPUR GBB LD VXTMG X VNLGV GV ZGQQMOF..
2023.03.20 -
[CTF] LOGCON - warmup
대회중에 해결하지 못한 리버싱 문제다. 문제는 그냥 warmup이라는 이름의 elf파일이 제공된다. f5눌러서 보니 c언어로 단순하게 encoded된 배열의 값을 scanf로 입력받은 값과 xor연산후 비교하는 코드로 보이는데 ida를 이용하는게 아직 미숙하다 보니 encoded[n] 저렇게 배열형식으로 안바꿔준채 디컴파일 해버려서 저 배열의 인덱스를 알지 못해 끝내 해결하지 못했다. 위 사진은 대회가 끝난 후에 변경하는 방법을 알게 되어서 저거 보고 익스코드 짜서 해결했다. encoded = [0] * 27 encoded[6] = 125 encoded[22] = 101 encoded[2] = 69 encoded[15] = 121 encoded[17] = 82 encoded[13] = 97 encoded..
2023.01.17 -
[CTF] SECCON CTF 2022 - skipinx
server { listen 8080 default_server; server_name nginx; location / { set $args "${args}&proxy=nginx"; proxy_pass http://web:3000; } }#default.conf const app = require("express")(); const FLAG = process.env.FLAG ?? "SECCON{dummy}"; const PORT = 3000; app.get("/", (req, res) => { req.query.proxy.includes("nginx") ? res.status(400).send("Access here directly, not via nginx :(") : res.send(`Congratz..
2022.11.13 -
[CTF] Blackhat 2022 CTF - naruto
대회가 끝나고 적는 라이트업이라 서버가 내려가서 정확한 문제 이름 하고 사이트 사진이 없다. 양해바람.. 사이트 들어가면 나루토 사진이 있길래 그냥 기억나는대로 아무거나 썻다 $flag=getenv("FLAG"); if ($_SERVER['REQUEST_METHOD'] === 'POST') { if(isset($_POST["email"])&&isset($_POST["pass"])){ if($_POST["email"]==="admin@naruto.com"){ $x=$_POST["test"]; $inp=preg_replace("/[^A-Za-z0-9$]/","",$_POST["pass"]); if($inp==="SuperSecRetPassw0rd"){ die("Hacking Attempt detected")..
2022.10.02 -
[WARGAME] los.rubiya.kr - Nightmare
6) exit("No Hack ~_~"); $query = "select id from prob_nightmare where pw=('{$_GET[pw]}') and id!='admin'"; echo "query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("nightmare"); highlight_file(__FILE__); ?>#주석을 이용하지 못한다.따라서 다른 방법을 이용해서 우회해야한다. 바로 ;%00이다. %00은 NULL이지만 앞에 세미콜론이 붙으면 주석역할을 한다. 따라서 ?pw=%27)=0;%00를 입력하면 해결된다.
2022.08.14 -
[WARGAME] los.rubiya.kr - zombie_assassin
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("zombie_assassin"); highlight_file(__FILE__); ?>17번 좀비 어세신 문제이다. get으로 요청받는 부분을 보면 id와 pw 모두 addslashes함수로 처리된 후 strrev로 인해 문자열이 뒤집힌다.https://www.php.net/manual/en/function.addslashes.php single quote (')double quote (")backslash (\)NUL (the NUL byte)이 4가지 앞에 슬래쉬가 붙는다고 생각하면 쉽다.. 페이로드를 어떻게 구성..
2022.08.14