security/web

[SQL Injection] Error&Time based

chanchand 2023. 1. 24. 19:26
반응형

Error based SQL Injection

임의로 에러를 발생시켜 데이터베이스 및 운영체제 정보 획득하는 공격 기법

실행결과를 출력하는 코드가 존재하지 않고 쿼리 실행 결과만 판단한다.

오류 발생 시 발생원인이 출력되며, 오류메시지를 통해 공격에 필요한 다양한 정보 수집이 가능하다.

 

- 공격 코드

select extractvalue(1,concat(0x3a, version()));

에러 메시지에 운영체제에 대한 정보가 포함된다.

 

- extractvalue

extractvalue([XML 데이터],[XPATH 식])

첫번째 인자로 전달된 XML 데이터에서 두번째 인자인 XPATH 식을 통해 데이터 추출이 가능하다.

두번째 인자가 올바르지 않은 XPATH 식일 경우, 에러메시지와 함께 잘못된 식이 출력된다.

 

- extractvalue 응용

select extractvalue(1,concat(0x3a,(select password from users where username='admin')));

데이터베이스 정보 추출이 가능하다.

-> ERROR 1105(HY000): XPATH syntax error : [password]

 

2023.01.24 - [programming/sql] - extractvalue()

 

extractvalue()

설명 XML에서 XPath 표현식에 일치하는 데이터를 추출하여 반환 extractvalue(xml_frag, xpath_expr) 두번째 인수에 유효하지 않은 XPath 표현식이 사용된다면 오류 발생 ERROR 1105 (HY000): XPATH syntax error: '[xpath_ex

chandlerbong.tistory.com

 

 

 

Time based SQL Injection

시간 지연을 이용해 쿼리의 참/거짓 여부를 판단하는 공격 방법

 

- heavy query

시간이 많이 소요되는 연산을 수행

sleep() 함수

 

- mysql example

select sleep(1);
select sleep(4000000, SHA(1));

 

반응형

'security > web' 카테고리의 다른 글

file url schema  (0) 2023.08.20
127.0.0.1 / localhost 우회  (0) 2023.08.20
CouchDBMS  (0) 2023.08.19
CSS Injection  (0) 2023.07.15
필터링 우회  (0) 2023.01.22