SQL 주입 취약점은 MySQL, Oracle, SQL Server 등과 같은 SQL 데이터베이스를 사용하는 웹 사이트 또는 웹 응용 프로그램에 영향을 줄 수 있습니다. 범죄자는 고객 정보, 개인 데이터, 영업 비밀, 지적 재산권 등 민감한 데이터에 무단으로 액세스하는 데 사용할 수 있습니다. SQL 주입 공격은 가장 오래되고 가장 널리 퍼진 가장 위험한 웹 응용 프로그램 취약점 중 하나입니다. OWASP 조직(개방형 웹 응용 프로그램 보안 프로젝트)은 OWASP 상위 10 2017 문서에 웹 응용 프로그램 보안에 대한 가장 큰 위협으로 사출을 나열합니다. 추론 방법을 사용하면 이러한 장애물을 방지하여 원하는 일부 필드의 값을 복구하는 데 성공할 수 있습니다. 이 메서드는 서버에 대해 일련의 부울 쿼리를 수행하고 답변을 관찰하고 마지막으로 이러한 답변의 의미를 추론하는 것으로 구성됩니다. 항상 www.example.com 도메인을 고려하고 SQL 주입에 취약한 id라는 매개 변수가 포함되어 있다고 가정합니다. 즉, 다음 요청을 수행: 그러나 공격자가 John의 암호(공격자가 John일 수 있음)가 있는 경우 John을 관리자로 만들 수 있습니다. 그들은 사용자 이름으로 다음을 사용 하 여 로그인 (읽기의 용이성을 위해 추가 된 줄 바) : 우리는 지금 대상 컴퓨터에 낮은 권한 셸이.
우리가 원하는 것은 우리의 권한을 에스컬레이션하고 루트 액세스를 얻는 것입니다. uname -a 명령은 공격을 진행할 수 있는 충분한 정보를 반환합니다. 우리는 커널 버전에 관심이 있습니다. 대신 이메일 이름과 암호를 직접 포함하여 스니펫에서 실제 암호 테스트를 수행합니다. 이 예제에서는 피해자, bob@example.com 사용하고 여러 암호를 사용해 봅을 사용해 봅을 사용합니다. 예를 들어 공격자가 SQL 문 실행을 변경하지 않는 새 줄이나 탭과 같은 특수 문자를 추가하는 경우 다음과 같은 SQL을 삽입할 수 있습니다. 예를 들어 대역 내 SQLi(데이터베이스 오류 또는 UNION 명령 사용), 블라인드 SQLi 및 대역 외 SQLi와 같은 여러 유형의 SQL 주입 공격이 있습니다. SQL 주입 유형(SQLi), 블라인드 SQL 주입: 그 내용은 다음 문서에서 자세히 확인할 수 있습니다. 예를 들어 Microsoft SQL Server에서는 데이터베이스의 모든 텍스트 열에 JavaScript를 삽입하려는 악용을 제한하는 일부 시스템 테이블에서 데이터베이스 로그온을 선택할 수 없습니다. 연구 및 공격 단계는 쉽게 사용할 수 있는 도구로 쉽게 자동화할 수 있습니다.
쿼리는 관리자의 암호 해시를 반환합니다. 이 해시에 대한 암호를 찾으려면 해시캣이라는 잘 알려진 암호 복구 소프트웨어를 사용합니다. 이 소프트웨어는 암호를 해독하는 다양한 방법을 제공합니다. 9,600만 개의 암호가 포함된 비교적 작은 목록으로 사전 공격을 시도할 것입니다. SQL 주입 치트 시트는 SQL 주입 취약점의 다양한 변형에 대한 자세한 기술 정보를 찾을 수 있는 리소스입니다. 이 치트 시트는 양념 침투 테스터와 웹 응용 프로그램 보안에서 막 시작하는 사람들에 대한 좋은 참조입니다. 입력의 단일 따옴표 문자는 입력의 나머지 부분이 값의 일부가 아니라 SQL 문의 일부로 해석됩니다.