목록CTF/web (4)
ash3r & dmawhwhd
Wacon 예선에서는 풀지 못 했지만 문제 퀄리티가 모두 좋아서 못 푼 것이 아쉬워 풀어봤습니다. 분석했을 때 attack gadget을 찾지 못해서 풀지 못 했는데 끝나고 여쭤봤고 그 방법으로 공부하여 풀어보았습니다. #!/usr/bin/env node const express = require('express') const childProcess = require('child_process') const app = express() const saved = Object.create(null) const config = {} const merge = function(t, src) { for(var v of Object.getOwnPropertyNames(src)) { if(typeof(src[v]) =..
";if (Check($_POST["url"])) { $url = escapeshellarg($_POST["url"]); $cmd = "/usr/bin/curl ${url} --output - -m 3 --connect-timeout 3"; echo "your command: " . $cmd . ""; $res = shell_exec($cmd);} else { die("error~");}if (strpos($res, $_SESSION["uuid"]) !== false) { echo $res;} else { echo "you cannot get the result~";} 서버 코드인데 curl 요청을 보내줍니다. 하지만 libcurl이 아닌 linux curl을 사용합..
매우매우 간단한 error based sql injection 문제입니다. #!/usr/bin/env python3 import sqlite3 import random import string import os def randName(): return ''.join([random.choice(string.hexdigits) for i in range(16)]) dbpath = f'/tmp/{randName()}.db' conn = sqlite3.connect(dbpath) cur = conn.cursor() cur.execute(""" CREATE TABLE flag (flag TEXT) """) cur.execute(f"INSERT INTO flag VALUES ('{os.getenv('FLAG','f..
예선 시간에 문제를 거의 다 풀었는데 아쉬워서 여러 풀이들을 공부하여 write up을 작성해봤습니다..!! 문제에서 제공되는 http://114.203.209.112:8000에 접속한 모습입니다. guest, guest로 로그인 하게 되면 curl을 보낼 수 있는 기능이 있습니다. 하지만 localhost이어야 가능하다고 알려줍니다. http://114.203.209.112:8000/index.phtml?fun_004ded7246=load url이 이렇게 생긴 것을 보아 혹시 include인가 싶어 index를 넣어봤습니다. 무한루프를 도는 것을 보아 include가 맞다고 생각했습니다. index만 넣었을 때 include가 되었기에 .phtml이 뒤에 붙는 것을 예측할 수 있습니다. 그래서 php:..