| by munsiwoo | 1 comment

2019 코드게이트 발표 후기

내가 준비한 주제는 Zend엔진(PHP 인터프리터) 오픈소스 오디팅을 통해 널리 알려진 PHP 트릭이 발생하는 이유와 분석 과정을 설명하며 그 중 취약점으로 웹해킹에 사용될 수 있는 버그에 대해 다뤄보는 주제였다. 작년 세미나를 생각하고 약 40분 분량의 발표 자료를 준비했는데, 올해는 발표 시간이 25분으로 줄어들어서 발표 자료 페이지 편집하느라 힘들었다. 겨우 내용 추려서 리허설땐 나름 만족스럽게 끝냈는데, 본 […]

Read More
| by munsiwoo | No comments

Race condition vulnerability in PHP (feat. 고등해커)

고등해커는 올해 처음으로 학생이 주도 및 운영해본 교내 CTF입니다. 저는 CTF플랫폼 제작과 웹 문제 출제를 담당했으며, 출제한 문제 중 친구들이 재밌게 풀어준 count라는 문제에 대해 간단히 풀이를 작성해보겠습니다. count는 PHP의 파일 입출력에서 발생할 수 있는 레이스컨디션 문제이며, flag를 얻는 것이 불가능해보이는 상황에서 레이스컨디션 공격을 이해하고 flag를 획득할 수 있는지 묻는 간단한 문제였습니다. 다음은 문제의 소스코드입니다. […]

Read More
| by munsiwoo | 1 comment

PHP 컴파일, 실행 bash 스크립트

#!/bin/bash # data: 2019-01-29 # made by munsiwoo echo php compile and run PHP_PATH=”/php/php-7.0.30″ if [ -f /usr/local/bin/php ]; then rm -rf /usr/local/bin/php fi if [ -f /usr/local/lib/php ]; then rm /usr/local/lib/php fi if [ -f /usr/local/include/php ]; then rm /usr/local/include/php fi make –directory=$PHP_PATH > make.log make install –directory=$PHP_PATH > make_install.log if [ -f test.php […]

Read More
| by munsiwoo | No comments

museum.php.net

조만간 업데이트될 PHP 분석 기행기를 쓰면서 찾았다. http://museum.php.net : PHP 종류별로 다 설치할 수 있다.

Read More
| by munsiwoo | 1 comment

2018 ROOT CTF Write up

munswings, 아쉽게 4등했다. Web – Blind man (932pts) 회원가입의 pw부분에서 sqli가 발생하며 인젝션 포인트는 다음과 같다. insert into user (id, pw) values (‘asdf’, ‘{inject point}’); 여기서 ‘),(‘munsiwoo’, (select pw from user x limit 0,1)like’a%  이런식으로 넣는다면 insert into user (id, pw) values (‘asdf’, ”),(‘munsiwoo’, (select pw from user x limit 0,1)like’a%’); 위와 같은 쿼리가 완성되고, munsiwoo라는 […]

Read More
| by munsiwoo | 6 comments

3rd TenDollar CTF Write up

Summary 대회명: Tendollor CTF 일정: 24 Nov, 09:00 ~ 25 Nov, 15:00 KST 대회는 개인전이었고 지인을 통해 초대 코드를 받아야 참가할 수 있다. 스코어보드는 다이나믹 스코어링 방식이었고 전체적으로 난이도가 중~상 정도 되어보였다. 문제 이름이 XSS인 문제가 있었는데 꽤 재밌게 풀어서 풀이 작성해본다. (XSS는 마지막에) I’m Blind Not Deaf (250pts) <?php include ‘./config.php’; if(preg_match(‘tdf|/_|\.|\(\)/i’, $_GET[pw])) exit(“No […]

Read More
| by munsiwoo | 1 comment

교내대회 Old school whitebox

<?php error_reporting(0); require_once ‘config.php’; if(isset($_GET[‘username’], $_GET[‘password’])) { $username = addslashes($_GET[‘username’]); $password = password($_GET[‘password’]); $username = mb_convert_encoding($username ,’utf-8′,’euc-kr’); if(preg_match(‘/union.*select/i’, $username)) { die(‘<h3>(つ゚⊿゚)つ Hey Nope!</h3>’); } $conn = mysqli_connect(__HOST__, __USER__, __PASS__, __NAME__) or die(‘server down’); $query = “SELECT * FROM `users` WHERE `username`='{$username}’ AND `password`='{$password}’;”; $result = mysqli_query($conn, $query); if($fetch = mysqli_fetch_assoc($result)) { echo ‘<h3>(๑→ܫ←) Hello, ‘.$fetch[‘username’].'</h3>’; […]

Read More
| by munsiwoo | 1 comment

Hack.lu CTF 2018 – Baby PHP

<?php require_once(‘flag.php’); error_reporting(0); if(!isset($_GET[‘msg’])){ highlight_file(__FILE__); die(); } @$msg = $_GET[‘msg’]; if(@file_get_contents($msg)!==”Hello Challenge!”){ die(‘Wow so rude!!!!1’); } echo “Hello Hacker! Have a look around.\n”; @$k1=$_GET[‘key1’]; @$k2=$_GET[‘key2’]; $cc = 1337;$bb = 42; if(intval($k1) !== $cc || $k1 === $cc){ die(“lol no\n”); } if(strlen($k2) == $bb){ if(preg_match(‘/^\d+$/’, $k2) && !is_numeric($k2)){ if($k2 == $cc){ @$cc = $_GET[‘cc’]; } } […]

Read More