WEB&APP 진단/SQL Injection

1-0. SQL Injection을 위한 Windows 환경 준비하기

또야 2023. 12. 23. 13:02
반응형

1. Windows APM 통합 환경 구축

Autoset 10.7.2 사용

http://autoset.net/xe/download_autoset_10_7_2



2. mysql 비밀번호 변경

MySQL 콘솔창에 접속하여
mysql -u root -p를 입력하면 Access denied for user 'root'@'localhost' (using password: YES) 오류가 발생한다.
초기 비밀번호를 지정하지 않았다면
mysql -u root로 접속한 후 다음과 같이 비밀번호 변경 완료

https://likethefirst.tistory.com/entry/MySQL-Column-Password-is-not-updatable



3. ORACLE database 21c / SQL Server 2019와 PHP 7.2 연동

3-1. ORACLE

3-1-1. ORACLE XE 다운로드
3-1-2. PHP 연동

<?php

// Connects to the XE service (i.e. database) on the "localhost" machine
$conn = oci_connect('c##sa', 'root', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT user FROM dual');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

3-1-3. 오류 해결 / ORA-12560: tns:프로토콜 어댑터 오류 + ORA-12541 tns 리스너가 없습니다
(밴드를 왜 덕지덕지 붙여놓았느냐 하면.. 해결하면서 맘이 마이 아팠거든여... 연휴 점심에 시작해서 밤에 끝난..)
❤️‍🩹 oracle instant client x64 설치
❤️‍🩹 lsnrctl status에서 '리스너 매개변수 파일 경로' 확인

❤️‍🩹 listener.ora 파일 중 HOST = 0.0.0.0으로 변경

❤️‍🩹 이후 lsnrctl stop / lsnrctl start (또는 서비스에서 OracleOraDB21Home1TNSListener 재기동)
❤️‍🔥 연동완료

 

3-2. SQL Server(MSSQL)

3-2-1. MSSQL 2019 다운로드 (구성 관리자, SSMS)
3-2-2. PHP 연동

<?php
$serverName = "127.0.0.1"; //serverName\instanceName
$connectionInfo = array( "Database"=>"master", "UID"=>"sa", "PWD"=>"root");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
    echo "Connection established.<br />";
}else{
    echo "Connection could not be established.<br />";
    die( print_r( sqlsrv_errors(), true));
}
?>

3-2-3. 오류 해결 / Fatal error: Call to undefined function mssql_connect()
❤️‍🩹 SQLSRV 중에 php_sqlsrv_72_ts_x64.dll 와 php_pdo_sqlsrv_72_ts_x64.dll가 있는 버전 다운로드

특정 버전부터는 mssql_connect() 함수가 지원되지 않아 sqlsrv_connect() 함수를 사용해야 한다.

파일명 형식은 php_(pdo)_sqlsrv_[PHP 버전]_[nts|ts]_x64.dll이므로,

PHP 5.6버전을 사용중이라면 php_sqlsrv_56 과 같은 파일명이어야 한다.

또한 아파치 웹서버에 PHP가 올라가 있는 형태라면 nts가 아닌 ts 파일을 사용해야 한다.

❤️‍🩹 C:\AutoSet10\server\bin\ext 에 해당 파일 붙여넣으면서, 파일명을 php_sqlsrv 와 php_pdo_sqlsrv로 변경
❤️‍🩹 C:\AutoSet10\server\conf\php.ini에 extension=sqlsrv와 extension=pdo_sqlsrv 추가
❤️‍🩹 이후 웹서버 재기동
❤️‍🔥 연동완료



4. 끝

비~버에서 세 종류의 DBMS Query를 사용할 수 있게 되었다!



+. 참고자료

1) 전체적인 설명 : https://www.lesstif.com/dbms/php-ms-sql-driver-windows-118095924.html
2) nts? ts? : https://mkklab.tistory.com/8
3) ORACLE TNS 환경설정 파일 : https://hot-computer.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-%EC%98%A4%EB%A5%98-%EB%A6%AC%EC%8A%A4%EB%84%88%EA%B0%80-%EC%97%86%EC%9C%BC%EC%8B%A0%EA%B0%80%EC%9A%94-TNS%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%96%B4%EB%8C%91%ED%84%B0-%EC%98%A4%EB%A5%98-TNS-12560
4) ORACLE TNS 서비스 확인 : https://velog.io/@bby/%EB%94%94%EB%B9%84%EB%B2%84-%EC%98%A4%EB%9D%BC%ED%81%B4-%EC%97%B0%EA%B2%B0-%EC%97%90%EB%9F%AC-TNS-12541-TNS%EB%A6%AC%EC%8A%A4%EB%84%88%EA%B0%80-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4
5) ORACLE listener.ora 파일 수정 : https://growupcoding.tistory.com/28

 

반응형