정보보안
[정보보안] exp()를 사용한 sql injection
SweetDev
2021. 2. 2. 07:38
exponent(지수) 의 기능을 갖춘 exp(x)함수는 e^x을 double 형태로 반환한다.
이 함수에는 치명적인 결함이 있는데, x가 709.782712893이 넘으면 오류가 난다는 것이다...!
아마 2.7^ 709 = 6.869242e+305 인데 이정도 이상의 숫자를 못다루는 자료형을 내부적으로 쓰는걸까?
(float이 3.4E-38(-3.4*10^38) ~ 3.4E+38(3.4*10^38) (7digits) 인거랑 관련이 있나 생각해봤는데 그건 아닌것같다)
아무튼, 이러한 overflow를 이용해서 exp(710 * condition) 으로 해서, condition이 참이면 에러가 나고 거짓이면 정상인 점을 이용해서 SQL Injection을 시도한다.