EASY7

[Lord of SQL] GREMLIN #1 본문

Project/Lord of SQL

[Lord of SQL] GREMLIN #1

E.asiest 2020. 7. 24. 17:37

 

1
2
3
4
5
6
7
8
9
10
11
12
<?php
  include "./config.php";
  login_chk();
  dbconnect();
  if(preg_match('/prob|_|\.|\(\)/i'$_GET[id])) exit("No Hack ~_~"); // do not try to attack another table, database!
  if(preg_match('/prob|_|\.|\(\)/i'$_GET[pw])) exit("No Hack ~_~");
  $query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
  echo "<hr>query : <strong>{$query}</strong><hr><br>";
  $result = @mysql_fetch_array(mysql_query($query));
  if($result['id']) solve("gremlin");
  highlight_file(__FILE__);
?>
cs

 

Code Analyzing

#5 ~ 6 Line

id, pw Parameter에 _, ., (, )와 같은 특수문자가 포함되지 않도록 한다.

다른 테이블이나 데이터베이스의 값을 공격하지 못하게 하기 위함이다.

 

Resolving

각주 이용

SQL 종류에 따라 각주가 다르다.

 

오라클 단일 각주 -- 멀티 각주/* */

 

참/거짓 이용

'Project > Lord of SQL' 카테고리의 다른 글

LOS 12번 문제  (0) 2019.08.09
LOS 11번  (1) 2019.08.04
Lord of the SQL 10번  (0) 2019.08.04
Lord of the SQL 9번  (0) 2019.08.04
Lord of the SQL 8번  (0) 2019.08.04
Comments