programming/sql

SELECT @local_variable

chanchand 2023. 1. 23. 01:11
반응형

- 의미

지역변수 설정

변수 할당에는 SELECT @local_variable 대신 SET @local_variable을 사용하는 것이 좋다.

 

 

- 구문

SELECT { @local_variable { = | += | -= | *= | /= | %= | &= | ^= | |= } expression } [ ,...n] [ ; ]

 

 

- 인수

@local_variable  

값을 할당할 선언된 변수

오른쪽 값을 왼쪽의 변수에 할당

복합 할당 연산자 사용 가능

 

expression

유효한 식

 

 

- 취약점

union 구문이 필터링 되어있지 않을 때 이를 이용해서 정보를 얻을 수 있다.

 

id가 admin인 pw를 @test 변수에 할당한다.

SELECT @test:=pw WHERE id='admin'

 

쿼리문 자체는 변수에 대입할 뿐 리턴하지 않기 때문에 union을 사용하여 반환하면 pw를 확인할 수 있다.

UNION SELECT @test

->

SELECT @test:=pw WHERE id='admin' UNION SELECT @test

 

반응형

'programming > sql' 카테고리의 다른 글

order by  (0) 2023.01.25
extractvalue()  (0) 2023.01.24
[MySQL] 명령어  (0) 2023.01.09
procedure_analyse  (0) 2023.01.09
is null/is not null, in/not in  (0) 2023.01.07