Menu

분사구문 예제

  • Uncategorized

SQL 삽입은 데이터 기반 응용 프로그램을 공격하는 데 사용되는 코드 주입 기술로, 악의적인 SQL 문이 실행을 위해 입력 필드에 삽입됩니다(예: 데이터베이스 내용을 공격자에게 덤프). [1] SQL 주입은 응용 프로그램의 소프트웨어에서 보안 취약점을 악용해야 합니다(예: 사용자 입력이 SQL 문에 포함된 문자열 리터럴 이스케이프 문자에 대해 잘못 필터링되거나 사용자 입력이 예기치 않게 입력되지 않은 경우). 실행. SQL 주입은 주로 웹 사이트에 대한 공격 벡터로 알려져 있지만 모든 유형의 SQL 데이터베이스를 공격하는 데 사용할 수 있습니다. 예를 들어 Microsoft SQL Server에서는 데이터베이스의 모든 텍스트 열에 JavaScript를 삽입하려는 악용을 제한하는 일부 시스템 테이블에서 데이터베이스 로그온을 선택할 수 없습니다. 예를 들어 Acunetix 검사를 사용하는 SQL 주입 취약점을 발견하면 즉시 문제를 해결하지 못할 수 있습니다. 예를 들어 이 취약점은 오픈 소스 코드에 있을 수 있습니다. 이러한 경우 웹 응용 프로그램 방화벽을 사용하여 입력을 일시적으로 소독할 수 있습니다. 시간 지연 악용 기술은 테스터가 작업 결과에 대해 알려진 블라인드 SQL 주입 상황을 찾을 때 매우 유용합니다.

이 기술은 주입된 쿼리를 보내는 것으로 구성되며 조건부가 true인 경우 테스터는 서버가 응답하는 데 걸린 시간을 모니터링할 수 있습니다. 지연이 있는 경우 테스터는 조건부 쿼리의 결과가 true라고 가정할 수 있습니다. 이러한 악용 기술은 DBMS에서 DBMS로 다를 수 있습니다(DBMS 특정 섹션 확인). 이전 예제는 필드 사용자 이름의 첫 번째 문자가 ASCII 값 97과 동일한 경우에만 결과를 반환합니다. 잘못된 값을 얻으면 ASCII 테이블의 인덱스를 97에서 98로 늘리고 요청을 반복합니다. 대신 true 값을 얻으면 ASCII 테이블의 인덱스를 0으로 설정하고 SUBSTRING 함수의 매개 변수를 수정하여 다음 문자를 분석합니다. 문제는 실제 값을 반환하는 테스트와 false를 반환하는 테스트를 구별할 수 있는 방법을 이해하는 것입니다.

Search