'undefined function'에 해당되는 글 1건

반응형

데이터베이스에는 MySQL, MSSQL, Oracle이 대표적이지만 안드로이드와 IOS에서 주로 사용되는 SQLite 가 존재한다.


데이터베이스 관련 취약점인 SQL Injection이 해당 데이터베이스에서도 발생되는데 이에 대한 대응방안을 찾아보았다.


PERL이나 PHP같은 스크립팅 언어에서는 쿼리를 종료하는 모든 문자열에 대해 다룰 수 있다. PHP 언어의 경우 SQLite에 특별한 입력 문자열에 대해 다루는 sqlite_escape_string()이라는 함수를 제공해준다.


아래는 해당 함수를 사용하는 예시이다.

// addslashes() 함수를 거친 데이터를 사용할 경우 결과가 이상하게 나옴

if(!get_magic_quotes_gpc()) {

$name = sqlite_escape_string($name);

}


$result = @$db->query("SELECT * FROM users WHERE username='{$name}'");





나의 경우 해당 함수를 사용하였는데 다음과 같은 에러가 발생하였다.

Fatal error: Call to undefined function sqlite_escape_string() in [파일명] on line 9


왜 그런지 알아보았는데 결론은 테스트 환경인 CentOS의 문제였다.

동일한 에러가 발생한다면 아래 Step대로 진행하면 해결될 것이다.


아래 php-5.X.X.tar.gz 부분은 버전정보를 입력하면 된다. ( "php -v" 명령어를 통해 확인 가능 )


wget http://museum.php.net/php5/php-5.X.X.tar.gz

tar xzvf php-5.2.XX.tar.gz

cd php-5.2.XX/ext/sqlite/

phpize

./configure

make

make install

echo extension=sqlite.so >> /etc/php.d/sqlite.ini

service httpd restart


* 만약 진행하다가 phpize 명령어가 안된다면 다음 명령어를 통해 php-devel를 설치 

yum install php-devel*


참고 )

 - https://www.tutorialspoint.com/sqlite/sqlite_injection.htm

 - https://www.php.net/manual/en/function.sqlite-escape-string.php

 - https://www.serveradminblog.com/2013/07/centos-5-call-to-undefined-function-sqlite_escape_string/

 - https://medium.com/@a.m./solved-phpize-command-not-found-in-centos-6-4-6ee253419053

반응형

'Hacking > Web' 카테고리의 다른 글

JWT Signature - RS256 to HS256  (3) 2020.02.27
open_basedir setting and bypass  (0) 2019.12.31
HTTP 인증 우회  (0) 2019.12.16
데이터 평문전송 대응방안  (2) 2019.12.06
0.0.0.0 의 의미  (0) 2019.11.20
블로그 이미지

rootable

,