[CTF] Blackhat 2022 CTF - naruto
2022. 10. 2. 20:39ㆍ정보보안/CTFLOG
반응형
대회가 끝나고 적는 라이트업이라 서버가 내려가서 정확한 문제 이름
하고 사이트 사진이 없다. 양해바람..
사이트 들어가면 나루토 사진이 있길래 그냥 기억나는대로 아무거나 썻다
$flag=getenv("FLAG");
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if(isset($_POST["email"])&&isset($_POST["pass"])){
if($_POST["email"]==="admin@naruto.com"){
$x=$_POST["test"];
$inp=preg_replace("/[^A-Za-z0-9$]/","",$_POST["pass"]);
if($inp==="SuperSecRetPassw0rd"){
die("Hacking Attempt detected");
}
else{
if(eval("return \$inp=\"$inp\";")==="SuperSecRetPassw0rd"){
echo $flag;
}
else{
die("Pretty Close maybe ?");
}
}
}
}
}
우선 사이트에 들어가면 나루토 사진과 함께 로그인 창이 뜨는게 처음에는 admin으로 들어가라길래 단순한 sqli이겠거니
싶었다. 하지만 입력하는 어떠한 쿼리도 작동 되지 않았고 f12로 소스를 확인했다.
그러던중 저 코드를 찾게 되었는데.
문제가 생긴다.
1. $x라는 변수는 뭐지?
2. 이메일에 admin@naruto.com 가 들어가고 $inp에 SuperSecRetPassw0rd 라는 값이 들어가면 분명 풀려야 하는데
풀리지 않음
이 문제를 풀려면 아래에 있는 eval코드를 잘 봐야한다 더블 쿼터에 담겨있고 eval함수를 거쳐 나온값이 SuperSecRetPassw0rd이여야 하므로, x를 사용해서 문제를 해결해야한다.
x는 null이므로
SuperSecRetPassw0rd$x를 적게 된다면 위의 if문의 die를 피하게 되면서 flag를 얻을수있다.
반응형
'정보보안 > CTFLOG' 카테고리의 다른 글
[CTF] LOGCON - warmup (0) | 2023.01.17 |
---|---|
[CTF] SECCON CTF 2022 - skipinx (0) | 2022.11.13 |
[WARGAME] los.rubiya.kr - Nightmare (0) | 2022.08.14 |
[WARGAME] los.rubiya.kr - zombie_assassin (0) | 2022.08.14 |
[WARGAME] los.rubiya.kr - succubus (0) | 2022.08.14 |