본문 바로가기

wri te-ups/websec.fr

(11)
websec.fr level11 write up 레드벨벳 아이린 해당 문제의 힌트로 AS 가 주어졌는데 코드를 보면 as 가 필터링되어 있는 것을 알 수 있다. /* Rock-solid too! */ $special1 = ["!", "\"", "#", "$", "%", "&", "'", "*", "+", "-"]; $special2 = [".", "/", ":", ";", "", "?", "@", "[", "\\", "]"]; $special3 = ["^", "_", "`", "{", "|", "}"]; $sql = ["union", "0", "join", "as"]; $blacklist = array_merge ($special1, $special2, $special3, $sql); 근데 MySQL에서와 마찬가지로 Alias function은 as ..
websec.fr level09 write up ㄹㅇ루다가 세젤예 에이프릴 이나은 진짜 해당 문제는 정말 쓸데없는 곳에서 삽질을 정말 많이 했던 문제이다. semicolon 없이 execution 하는 것을 우회하려고 얼마나 많은 삽질을 했던지ㅋㅋㅋ 결론적으로 해당 문제는 stripcslashes() 함수를 이용해서 푸는 문제이다. stripslashes() 함수는 \ (backslash) 가 없어지는 동시에, \x00 \000 같은 character 들이 함께 escape되기 때문에 forbidden character 를 사용할 수 있게 된다. [*] exploit code : https://github.com/ch4n3-yoon/write-ups/tree/master/websec.fr/level09
websec.fr level22 write up 에이프릴 이나은으로 시작하는 즐거운 write up H3X0R CTF의 geek test 문제를 출제하면서 이런 류의 문제는 자신있었는데ㅋㅋㅋ 정말 쉽게 풀었다. var_dump 함수를 이용해서 $a 를 출력하면 flag 를 얻을 수 있다. [*] exploit code : https://github.com/ch4n3-yoon/write-ups/tree/master/websec.fr/level22
websec.fr level24 write up 오늘도 어김없이 에이프릴 이나은으로 시작하는 write up 해당 문제는 webshell upload로 푸는 문제이다. webshell 이라는 확신이 들었던 이유는 다음 코드가 있었기 때문. (진짜 이 문제 풀려고 좀 시간 많이 투자했었는데 너무 허무하게 풀림ㅋㅋ) if (strpos($data, '
websec.fr level10 write up 에이프릴 이나은 진짜 너무 예쁘다ㅠㅠㅠㅠㅠ 이 문제는 PHP의 Loose compare 를 통한 magic hash vulnerability 를 이용해서 풀었다. 밑의 부분에서 취약점이 발생한다. $hash = substr (md5 ($flag . $file . $flag), 0, 8); if ($request == $hash) { show_source ($file);} $request 와 $hash 의 값을 ' == ' Loose compare를 통해서 비교하는데 만약 md5() 함수를 통해서 0e~~~ 가 나오면 $requests 가 0 일 때 true 로 되고 show_source 를 통해 flag.php를 볼 수 있게 된다. 그래서 처음에는 flag.php 앞에 './' 를 계속 붙여가면서 md5..
websec.fr level25 write up 사진은 Redvelvet의 조이~~~For my foreigner visitors, she is Joy in Redvelvet,, what a beautiful woman... PHP의 parse_url() 함수는 버그가 굉장히 많이 발생하는 함수이다. 그래서 약간의 버그를 찾아본 뒤, 살짝 조지면 된다. 포트를 이용해서 host 값을 혼동시킬 수 있는 점을 이용하여 플래그를 얻을 수 있다. LFI인 줄 알고 오지게 삽질햇었는데ㅋㅋㅋㅋ [*] url : http://websec.fr/level25/index.php?asdfa=sdfasdf:8080/asdfasdfasdf&page=flag
websec.fr level28 write up 레드벨벳 아이린 ~ ㅎㅎ @아육대\(For my blog foreign visitors! she's name is Irene who is a leader of girl group, RedVelvet) 문제 소스를 처음 봤을 때는 crc32() 를 우회해야하는 줄 알았지만, sleep(1) 함수를 보자마자 exploit 방법이 생각났다. $filename = md5($_SERVER['REMOTE_ADDR']) . '.php'; $fp = fopen($_FILES['flag_file']['tmp_name'], 'r'); $flagfilecontent = fread($fp, filesize($_FILES['flag_file']['tmp_name'])); @fclose($fp); file_put_contents..
websec.fr level14 solving 이 문제는 RCE를 이용해서 플래그를 얻는 것 같은데, RCE는 어떻게 할지 구상을 했지만 어떻게 풀어야 할지를 모르겠다. Challenge Analyse 필터링을 보면, 관리자가 안전하다고 여기는 4개의 함수말고는 사용하지 못하도록 되어있다. 또한, 전역변수에 대한 접근이 제한된 것을 볼 수 있다. PHP function trick? 이런 식으로 "문자열"(); 식으로 함수를 불러올 수 있다. PHP Array access trick? Curly brace로도 Array의 Element 에 접근할 수 있다. 이것말고도 current, next 같은 함수를 이용해도 되지만, 이 문제에서는 eval code가 25byte로 길이가 제한되어 있으므로 그런 류의 함수를 사용하는 것은 힘들어 보인다. RCE P..