yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

SQL injection 실습1 (WHERE 구문 우회) 본문

웹/웹 해킹

SQL injection 실습1 (WHERE 구문 우회)

yehey 2020. 9. 29. 16:02
실습환경: DVWA, kali 리눅스

WHERE 구문 우회

DVWA 보안 레벨을 low로 바꾸어주고 실습을 시작하쟈

 

SQL injection에서 user ID 입력하는 곳에 1을 입력해보았는데

ID가 1인 user의 이름을 함께 출력해주는 것을 볼 수 있다.

 

SQL injection 취약점이 존재하는지 확인하기 위해 '를 입력해보았다.

그랬더니 syntax error와 URL의 파라미터에 id=' 를 볼 수 있다.

여기서 입력한 값으로 인해 SQL 쿼리문이 조작될 수 있다는 것을 알 수 있다. 

syntax error는 형식 에러, 위와 같은 경우에서는 따옴표의 쌍이 맞지 않아 에러가 발생함
=입력이 SQL 쿼리문에 영향을 줄 수 있다는 뜻

'를 입력했을 때 SQL 쿼리문은 다음과 같다.

 

우리는 모든 user의 정보를 가져와서 출력하길 원하기 때문에

'가 아닌 항상 참이 되는 값을 넣으면 모든 user의 정보를 얻을 수 있다.

 

이번에 사용할 항상 참이 되는 값은 1' or '1'='1 이다.

 

입력 창에 1' or '1'='1을 입력하면

다음과 같이 id가 1인 admin 뿐만 아니라 다른 사용자들의 정보도 얻을 수 있다.

 

1' or '1'='1을 입력했을 때 쿼리문을 보면

이런 상태가 되고 WHERE 조건이 항상 참이 되어서 모든 사용자의 정보가 출력되는 것이다!

 

출처: 화이트 해커를 위한 웹 해킹의 기술

' > 웹 해킹' 카테고리의 다른 글

SQL injection 실습3 (Blind)  (0) 2020.09.30
SQL injection 실습2 (ORDER BY & UNION)  (0) 2020.09.30
Brute Force Attack + DVWA실습  (0) 2020.09.27
CSRF (크로스 사이트 요청 변조)  (0) 2020.09.18
XSS (크로스 사이트 스크립팅)  (0) 2020.09.16
Comments