▶ Error-based SQLi 연습할 때
데이터 베이스를 불러올 때 (데이터베이스 호출함수 ex. db_conn.php), 커넥션 에러를 출력하면서 php 에러를 출력하게 만든다. 또한, php 설정에서 에러를 출력하게끔 한다.
1
2
3
4
5
6
7
8
|
<?php
if(!$conn){
die("connection error! : ". mysqli_connect_error());
}
// 커넥션 에러 출력
ini_set('display_errors', '1');
// php 에러
|
cs |
php설정은 또한 php.ini에서 수정할 수도 있다. phpinfo(); 함수로 나온 페이지를 확인하면 다음과 같이 화면이 출력되는 것을 확인할 수 있는데,
'Loaded Configuration File'란 옆에 있는 php.ini 파일이 php 설정 파일이다. 해당 파일에 접속하게 되면 다음과 같이 세팅된 부분이 있는데,
display_errors = Off 를 'On' 으로 바꿔주게 되면 오류를 출력하게 된다. 홈페이지에서 작은 따옴표 (') 를 입력해서 확인해봤을 때, 다음과 같이 오류메시지를 띄우면서 작동하지 않으면 성공이다.
▶ Error 메시지 출력 대응방안
- Apache의 Custom Error Responses 활성화
위 설정을 반대로 해주면 된다. PHP개발 환경에서 쓰는 미들웨어는 PHP이므로 php.ini 파일에서는 위에서 나온 설정을 'OFF'로, 데이터베이스 접속 파일에서 오류를 출력하는 부분은 주석처리를 해주면 된다.
1
2
3
4
5
6
7
8
9
|
<?php
//if(!$conn){
// die("connection error! : ". mysqli_connect_error());
//}
// 커넥션 에러 출력
ini_set('display_errors', '0');
// php 에러
|
cs |
- PHP의 magic_quotes_gpc 설정 활성화 : php5.4이상에서는 지원 종료
'정보보안(웹해킹) > SQLInjection' 카테고리의 다른 글
SQL injection in 'order by' clause (0) | 2022.12.09 |
---|---|
SQL Injection WAF 우회기법 (0) | 2022.11.21 |
Error Based SQL Injection (0) | 2022.11.03 |
Union SQL Injection (1) | 2022.11.03 |
SQL injection 과 id = 0 (0) | 2022.10.26 |
댓글