SQL 삽입
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
SQL 삽입은 악의적인 사용자가 웹 애플리케이션의 입력값을 조작하여 데이터베이스 쿼리를 변조하는 공격 기법이다. 1990년대 후반부터 논의되었으며, 2000년대 초반부터 다양한 피해 사례가 발생했다. 공격자는 사용자 정보 유출, 데이터 변조, 서비스 중단 등 다양한 피해를 입힐 수 있으며, 일반적인 SQL 삽입, Blind SQL 삽입, 2차 SQL 삽입 등 다양한 유형으로 분류된다. 방어 기법으로는 입력값 검증, 매개변수화된 쿼리, 이스케이프 처리 등이 있으며, 대한민국에서도 클럽 투어리즘, 소니 플레이스테이션 네트워크 등 여러 피해 사례가 보고되었다.
SQL 삽입에 대한 논의는 1990년대 후반부터 시작되었으며, 1998년 Phrack Magazine에 관련 기사가 실리기도 했다.[5] 2000년대 초반부터 SQL 삽입 공격이 본격적으로 등장하기 시작했다. OWASP(Open Web Application Security Project)는 2007년, 2010년, 2013년 10대 웹 애플리케이션 취약점/공격 중 하나로 SQL 삽입을 선정했다.[6][7]
SQL 삽입은 애플리케이션이 사용자 입력값을 제대로 검증하거나 이스케이프(Escape) 처리하지 않고 SQL 쿼리에 그대로 사용함으로써 발생한다.
SQL 삽입은 공격자가 데이터베이스에 악의적인 SQL 쿼리를 주입하여 정보를 탈취하거나 조작하는 공격 방식이다. 공격 유형은 다음과 같다.
2. 역사
2002년 2월, 제레미아 잭스는 Guess.com이 SQL 삽입 공격에 취약하다는 것을 발견했다.[21] 2005년 11월 1일, 십 대 해커가 SQL 삽입을 사용하여 Tech Target 그룹의 타이완 정보 보안 잡지 사이트를 해킹하여 고객 정보를 훔쳤다.[22] 2006년 1월 13일, 러시아 컴퓨터 범죄자가 로드아일랜드 주 정부 웹사이트를 해킹하여 신용 카드 데이터를 훔쳤다.[23]
2007년 9월 19일과 2009년 1월 26일, 터키 해커 그룹 "m0sted"는 SQL 삽입을 사용하여 맥앨리스터 육군 탄약창과 미국 공병대의 웹 서버를 해킹했다.[24] 2008년 4월 13일, 오클라호마의 성범죄자 등록소가 SQL 삽입 공격을 통해 사회 보장 번호가 다운로드된 후 웹사이트를 폐쇄했다.[25]
2009년 8월 17일, 미국 법무부는 SQL 삽입 공격을 사용하여 1억 3천만 개의 신용 카드 번호를 훔친 혐의로 미국 시민 알버트 곤잘레스와 두 명의 러시아인을 기소했다.[26] 2010년 7월, 더 파이럿 베이에서 SQL 삽입 취약점이 악용되어 사용자 정보가 유출되었다.[27]
2010년 7월 24일부터 26일까지 일본과 중국에서 온 공격자들이 SQL 삽입을 사용하여 오사카 기반 회사인 네오 비트의 고객 신용 카드 데이터에 접근했다. 2010년 9월 19일 2010년 스웨덴 총선 동안 한 유권자는 기표 거부 투표의 일부로 SQL 명령어를 손으로 작성하여 코드 삽입을 시도했다.[28] 2010년 11월 8일, 영국 영국 해군 웹사이트가 틴코드라는 루마니아 해커에 의해 손상되었다.[29][30]
2011년 4월 11일, 바라쿠다 네트웍스가 SQL 삽입 결함을 사용하여 손상되었다.[31] 2011년 4월 27일, 브로드밴드 리포트 웹사이트에서 자동화된 SQL 삽입 공격이 발생했다.[32][33][34] 2011년 6월 1일, LulzSec 그룹은 SQL 삽입을 사용하여 소니 웹사이트에서 100만 명의 사용자 개인 정보에 접근했다.[35] 2011년 6월, PBS가 LulzSec에 의해 해킹되었으며, SQL 삽입을 사용했을 가능성이 크다.[36]
2012년 7월, 해커 그룹이 야후!에서 45만 개의 로그인 자격 증명을 훔쳤다.[37][38] 2012년 10월 1일, "Team GhostShell"이라는 해커 그룹은 하버드, 프린스턴, 스탠포드 등 53개 대학의 개인 기록을 pastebin.com에 게시했다.[39]
2013년 11월 4일, 해커 활동가 그룹 "RaptorSwag"는 중국 국제 상공 회의소에 대한 SQL 삽입 공격을 사용하여 71개의 중국 정부 데이터베이스를 침해했다.[40] 2014년 8월, 밀워키에 본사를 둔 컴퓨터 보안 회사 Hold Security는 SQL 삽입을 통해 약 42만 개의 웹사이트에서 기밀 정보가 도난된 것을 발견했다.[41] ''뉴욕 타임스''는 보안 전문가를 고용하여 이 주장을 확인했다.[42]
2015년 10월, SQL 삽입 공격을 사용하여 영국 통신 회사 TalkTalk의 서버에서 156,959명의 고객 개인 정보를 훔쳤다.[43] 2021년 초, 70기가바이트의 데이터가 SQL 삽입 공격을 통해 극우 웹사이트 Gab에서 유출되었다.[44] 다음 주에 첫 번째 공격 중에 도난당한 OAuth2 토큰을 사용하여 Gab에 대한 두 번째 공격이 시작되었다.[45]
3. 공격 원리
SQL 삽입은 공격자가 제공한 데이터가 SQL 코드가 되도록 허용함으로써 발생하는 일반적인 보안 취약점이다. 이는 프로그래머가 문자열 보간 또는 사용자 제공 데이터와 SQL 명령을 연결하여 SQL 쿼리를 구성할 때 발생한다. 공격자는 데이터 컨텍스트를 벗어나 명령 컨텍스트로 들어가도록 데이터를 조작하여 SQL 문의 구조를 변경할 수 있다.
SQL 삽입의 공격 원리를 보여주는 간단한 PHP 예시는 다음과 같다.
```php
$username = $_POST["username"];
$password = $_POST["password"];
$mysqli->query("SELECT * FROM users WHERE username='{$username}' AND password='{$password}'");
```
위 코드는 사용자로부터 아이디와 비밀번호를 입력받아 일치하는 행을 선택한다. 하지만 공격자가 유저네임에 `admin`, 패스워드에 `password' OR 1=1 --` 을 입력하면 쿼리문은 아래와 같이 변경된다.
```sql
SELECT * FROM users WHERE username='admin' and password='password' OR 1=1 --'
```
`1=1`은 항상 참이므로, 공격자는 비밀번호를 입력하지 않고 로그인할 수 있게 된다.
자바스크립트를 사용한 SQL 삽입 예시는 다음과 같다.
```javascript
var statement = "SELECT * FROM users WHERE name = '" + userName + "'";
```
이 코드는 사용자 테이블에서 지정된 사용자 이름의 레코드를 가져오도록 설계되었다. 그러나 악의적인 사용자가 "userName" 변수에 `' OR '1'='1'`을 입력하면 다음과 같은 SQL문이 생성되어 모든 사용자가 선택된다.
```sql
SELECT * FROM users WHERE name = '' OR '1'='1';
```
SQL 삽입의 종류로는 일반적인 SQL 삽입 외에도, 블라인드 SQL 삽입, 2차 SQL 삽입 등이 있다. (각 종류에 대한 자세한 내용은 하위 섹션 참조)
3. 1. 일반적인 SQL 삽입
공격자는 입력 폼이나 URL 파라미터 등에 SQL 코드를 삽입하여, 원래 의도된 SQL 쿼리를 변조한다.
예를 들어, 사용자 아이디와 비밀번호를 확인하여 로그인하는 PHP 프로그램이 있다고 가정해 보자.
```php
$username = $_POST["username"];
$password = $_POST["password"];
$mysqli->query("SELECT * FROM users WHERE username='{$username}' AND password='{$password}'");
```
이 코드는 사용자로부터 아이디와 비밀번호를 입력받아 일치하는 행을 데이터베이스에서 찾는다. 하지만 공격자가 사용자 이름에 `admin`, 비밀번호에 `password' OR 1=1 --`를 입력하면, 쿼리는 다음과 같이 변경된다.
```sql
SELECT * FROM users WHERE username='admin' and password='password' OR 1=1 --'
```
`1=1`은 항상 참이므로, 공격자는 비밀번호 없이 로그인할 수 있게 된다.
다른 예시로, 자바스크립트 코드를 사용하여 SQL 문을 생성하는 경우를 생각해볼 수 있다.
```javascript
var statement = "SELECT * FROM users WHERE name = '" + userName + "'";
```
이 코드는 사용자 테이블에서 지정된 사용자 이름의 레코드를 가져오도록 설계되었다. 그러나 악의적인 사용자가 "userName" 변수에 `' OR '1'='1'` 또는 주석을 사용하여 쿼리의 나머지 부분을 차단하는 값을 입력하면, SQL 문은 코드 작성자가 의도한 것보다 더 많은 작업을 수행할 수 있다.
```sql
SELECT * FROM users WHERE name = '' OR '1'='1';
SELECT * FROM users WHERE name = '' OR '1'='1' -- ';
```
위 코드는 인증절차를 우회하여 모든 사용자의 데이터를 가져올 수 있다.
또 다른 예로, 공격자가 "userName"에 `a';DROP TABLE users; SELECT * FROM userinfo WHERE 't' = 't`를 입력하면, 여러 SQL 문이 실행되어 "users" 테이블이 삭제되고 "userinfo" 테이블의 모든 데이터가 공개될 수 있다.[8]
```sql
SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * FROM userinfo WHERE 't' = 't';
```
이러한 예시들은 공격자가 데이터 컨텍스트를 벗어나 명령 컨텍스트로 들어가도록 조작하여 SQL 문의 구조를 변경할 수 있음을 보여준다.
3. 2. Blind SQL 삽입
Blind SQL 삽입은 일반적인 SQL 삽입과 같이 데이터베이스에 쿼리를 삽입하는 기술이지만, 데이터베이스의 응답이 공격자에게 직접 보이지 않는 환경에서 사용된다. 일반적인 SQL 삽입은 쿼리 결과를 바로 확인할 수 있지만, Blind SQL 삽입은 쿼리의 참/거짓 여부, 즉 서버의 반응만을 통해 데이터를 알아내야 한다.[57]
예를 들어, 도서 리뷰 웹사이트에서 특정 ID의 리뷰를 보여주는 페이지가 있다고 가정해 보자. 만약 이 페이지가 SQL 삽입에 취약하다면, 공격자는 다음과 같은 URL을 사용할 수 있다.
첫 번째 URL은 항상 참인 조건을 추가하여 모든 리뷰를 표시하도록 시도하고, 두 번째 URL은 항상 거짓인 조건을 추가하여 아무 리뷰도 표시하지 않도록 시도한다. 만약 첫 번째 URL에서 리뷰가 표시되고 두 번째 URL에서 빈 페이지나 오류 페이지가 나타난다면, 이 웹사이트는 SQL 삽입에 취약할 가능성이 있다.[11][12]
Blind SQL 삽입은 쿼리의 결과를 한 글자씩 비교하는 과정을 반복하여 데이터를 추출한다. 예를 들어, 데이터베이스에서 특정 테이블 이름의 첫 글자가 'a'인지 확인하기 위해 참/거짓 쿼리를 보내고, 서버의 반응을 통해 결과를 유추하는 방식이다. 이러한 과정은 많은 시간과 노력이 필요하기 때문에, 공격자들은 자동화된 도구를 사용하여 공격 효율을 높인다.[9][10]
최근에는 각 요청에서 여러 비트를 복구할 수 있는 기술이 발전하여 Blind SQL 삽입 공격이 더욱 효율적으로 이루어지고 있다.[9]
3. 3. 2차 SQL 삽입 (Second-order SQL injection)
2차 SQL 삽입은 애플리케이션이 사용자 입력을 즉시 검증하여 방어하지만, 시스템에 이미 저장된 데이터를 처리할 때는 덜 엄격한 정책을 사용할 때 발생한다. 따라서 사용자 입력을 안전하게 처리하여 저장해도 악성 SQL 문이 함께 저장될 수 있다. 나중에 애플리케이션의 다른 부분에서 SQL 삽입으로부터 보호되지 않은 쿼리에 해당 데이터를 사용하면 악성 문이 실행될 수 있다.[13]
이러한 공격은 제출된 값이 나중에 어떻게 사용되는지에 대한 더 많은 정보를 필요로 한다. 자동화된 웹 애플리케이션 보안 스캐너는 이러한 유형의 SQL 삽입을 쉽게 감지하지 못할 수 있으며, 공격 시도가 이루어지고 있다는 증거를 어디에서 확인할지 수동으로 지시해야 할 수 있다.
이러한 종류의 공격을 방어하려면 데이터 소스에 관계없이 모든 SQL 처리가 일관되게 안전해야 한다.
4. 공격 유형
2차 SQL 삽입은 사용자 입력을 즉시 방어하지만, 시스템에 이미 저장된 데이터를 처리할 때는 덜 엄격한 정책을 사용할 때 발생한다. 이 경우, 악성 SQL 문이 저장되었다가 나중에 실행될 수 있다.[13]
5. 방어 기법
SQL 삽입 공격을 방어하는 가장 효과적인 방법은 입력값 검증과 매개변수화된 쿼리(Prepared Statement)를 사용하는 것이다. SQL 인젝션은 입력값을 적절하게 이스케이프함으로써 방지할 수도 있다.
SQL 삽입은 잘 알려진 공격이며 간단한 조치로 쉽게 예방할 수 있다. 2015년 TalkTalk에 대한 SQL 삽입 공격 이후, BBC는 보안 전문가들이 이처럼 큰 회사가 이러한 공격에 취약하다는 사실에 놀라움을 금치 못했다고 보도했다.[14]
문자열 리터럴 중의 단일 인용 부호를 표현하는 방법이 여러 가지 존재하며, 문자 코드에 따라서는 2바이트째에 백슬래시가 포함된 문자를 갖는 경우가 있어 이스케이프 처리에 주의해야 한다.
객체 관계 매핑(ORM) 프레임워크는 SQL 삽입 공격 방지에 필요한 이스케이핑을 자동으로 처리하는 경우가 많지만, 원시 SQL 문을 사용할 수 있는 기능도 제공하므로 주의해야 한다.[19]
자세한 내용은 다음 하위 섹션을 참고할 수 있다.
5. 1. 입력값 검증 (Input Validation)
사용자 입력값에 대해 엄격한 검증을 수행하여, 허용되지 않은 문자나 패턴이 포함되지 않도록 해야 한다. 이를 위해 화이트리스트 방식(허용되는 문자나 패턴을 정의하고, 그 외에는 모두 차단)을 사용하는 것이 좋다. 정규 표현식 등을 활용하여 입력값의 형식, 길이, 허용 문자 등을 검사한다.예를 들어, 정수, 실수 또는 부울 문자열 매개변수는 해당 값이 지정된 유형의 유효한 표현인지 확인하고, 특정 패턴이나 조건(예: 날짜, UUID, 전화번호)을 준수해야 하는 문자열도 해당 패턴이 일치하는지 확인한다.
5. 2. 매개변수화된 쿼리 (Prepared Statement)
매개변수화된 쿼리(Prepared Statement)는 사용자 입력을 SQL 쿼리문에 직접 포함시키지 않고, 별도의 매개변수로 처리하는 방식이다. 이를 통해 SQL 삽입 공격을 효과적으로 방어할 수 있다.작동 방식:1. 준비: SQL 쿼리 템플릿을 데이터베이스 관리 시스템(DBMS)에 전송한다. 이때 사용자 입력 값은 플레이스홀더(placeholder)로 표시된다.
2. DBMS 분석 및 최적화: DBMS는 전달받은 쿼리 템플릿을 분석하고 최적화한다.
3. 실행: 플레이스홀더에 실제 사용자 입력 값을 할당하여 DBMS가 쿼리를 실행한다.
장점:
- 사용자 입력이 SQL 코드로 해석될 가능성이 없어 SQL 삽입 공격을 방지할 수 있다.
- DBMS가 쿼리를 미리 분석하고 최적화하므로 성능 향상에 도움이 될 수 있다.
PHP 예시 (PDO 사용):```php
$username = $_POST["username"];
$password = $_POST["password"];
$pdo = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'user', 'password');
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$st = $pdo->prepare('SELECT * FROM users WHERE username=:username AND password=:password'); // 준비
$st->bindParam(':username', $username); // 사용자 입력 값 할당
$st->bindParam(':password', $password); // 사용자 입력 값 할당
$st->execute(); // 실행
var_dump($st->fetchObject());
```
위 예시에서 `:username`과 `:password`는 플레이스홀더이며, `bindParam()` 메서드를 통해 실제 사용자 입력 값을 할당한다. `$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);` 를 통하여 PDO가 준비된 쿼리를 지원하지 않을 때, PDO가 직접 준비된 쿼리를 에뮬레이트 하도록 하는 설정을 끈다.
참고:
- 대부분의 현대적인 프로그래밍 언어와 데이터베이스 프레임워크는 매개변수화된 쿼리를 지원한다.
- PHP에서는 PDO 또는 MySQLi를 사용하여 준비된 선언(Prepared Statement)을 사용할 수 있다.
5. 3. 이스케이프 (Escape)
SQL에서 특별한 의미를 갖는 문자들을 이스케이프하여 SQL 삽입을 방어할 수 있다. 예를 들어, 작은따옴표(`'`)는 SQL에서 문자열의 시작과 끝을 나타내는 특수 문자이다. 공격자가 입력값에 작은따옴표를 포함시키면 SQL 쿼리가 예상치 못한 방식으로 해석될 수 있다. 이스케이프는 이러한 특수 문자를 다른 문자로 치환하여 SQL 코드로 해석되지 않도록 한다. 예를 들어, 작은따옴표는 `\'`로, 큰따옴표(`"`)는 `\"`로, 백슬래시(`\`)는 `\\`로 치환할 수 있다.[15]PHP에서는 이스케이프를 위해 `mysqli_real_escape_string();` 함수를 사용할 수 있다.[15] 이 함수는 MySQL 의미 체계에 따라 문자열을 이스케이프한다. 다음은 `mysqli_real_escape_string()` 함수를 사용하여 사용자 이름을 이스케이프하는 PHP 코드 예시이다.
$mysqli = new mysqli('hostname', 'db_username', 'db_password', 'db_name');
$query = sprintf("SELECT * FROM `Users` WHERE UserName='%s'",
$mysqli->real_escape_string($username));
$mysqli->query($query);
데이터베이스 시스템별로 이스케이프 규칙이 다를 수 있으므로, 해당 시스템의 문서를 참고해야 한다. 예를 들어, MySQL에서는 동작 모드에 따라 이중 인용 부호를 문자열의 묶음 문자로 사용할 수 있다.[50] 이러한 환경에서는 이중 인용 부호를 이스케이프해야 한다.
MySQL이나 PostgreSQL의 버전 및 설정에 따라 이스케이프 문자로 백슬래시를 사용하여 특수 문자를 표현할 수 있다. 이 방법을 사용하면 `\'`나 `\047` (047은 작은따옴표의 8진 표기)라는 문자열이 문자열 리터럴 중의 작은따옴표를 나타낸다. 이러한 데이터베이스 시스템에서는 작은따옴표를 이중화하는 것만으로는 SQL 삽입 대책으로 불충분하며, 백슬래시도 이스케이프해야 한다.
문자 코드에 따라서는 2바이트째에 백슬래시가 포함된 문자를 갖는 것이 존재하며, 일본어를 잘 처리하지 못하는 라이브러리도 있으므로 주의해야 한다.[51]
이스케이프는 SQL 삽입을 방지하는 전통적인 방법이지만, 매개변수화된 쿼리만큼 안전하지 않다. 프로그래머가 모든 문자열 매개변수를 부지런히 이스케이프해야 하며, 누락될 가능성도 있다. 따라서 가능한 매개변수화된 쿼리를 사용하는 것이 좋다.[16]
5. 4. 기타 방어 기법
- 최소 권한 원칙: 웹 애플리케이션에서 사용하는 데이터베이스 로그인 권한을 필요한 최소한으로 제한하면, SQL 삽입 공격의 피해를 줄일 수 있다. 예를 들어, Microsoft SQL Server에서는 데이터베이스 로그인이 일부 시스템 테이블에 접근하지 못하도록 제한하여, 공격자가 데이터베이스의 모든 텍스트 열에 JavaScript를 삽입하는 것을 막을 수 있다.[14]
- 에러 메시지 처리: 공격자에게 데이터베이스 구조나 정보를 노출할 수 있는 에러 메시지를 숨긴다.
- 웹 방화벽(WAF) 사용: 웹 애플리케이션 방화벽을 사용하여 SQL 삽입 공격을 탐지하고 차단한다.
- 정기적인 보안 점검: 웹 애플리케이션과 데이터베이스의 취약점을 정기적으로 점검하고, 최신 보안 패치를 적용한다.
- 저장 프로시저(Stored Procedure) 사용: 저장 프로시저는 SQL 쿼리의 집합으로, 입력값을 매개변수로 받아 처리하므로 SQL 삽입에 안전하다.
- 준비된 구문(Prepared Statement) 사용: 모든 변수 데이터 리터럴은 쿼리에서 특수 마커로 표시하고, 나중에 준비된 구문을 통해 쿼리에 바인딩해야 한다. 다른 모든 쿼리 부분(키워드, 데이터베이스 스키마 이름 등)은 화이트리스트를 통해 필터링해야 한다. 이를 통해 악성 데이터가 SQL에 들어가는 것을 방지할 수 있다.[2]
6. 피해 사례 (대한민국 중심)
다음은 대한민국에서 SQL 삽입 공격으로 인해 발생한 주요 피해 사례들이다.
연도 | 사건 내용 |
---|---|
2005년 | 클럽 투어리즘에서 신용카드 정보를 포함한 개인 정보 유출 발생. 같은 해 6월, 클럽 투어리즘을 포함한 14개 회사에 대한 부정 액세스 혐의로 중국인 유학생이 체포됨.[52] |
2005년 | 가격.com 웹사이트 위조 발생. 구체적인 수법은 밝혀지지 않았으나, SQL 삽입 공격으로 추정됨. 클럽 투어리즘 사건의 범인이 가격.com에도 부정 접근을 시도함.[52] |
2005년 | 아데코, 시즈오카 신문사 앳에스에서 개인 정보 유출 발생. 클럽 투어리즘 사건과 동일범의 소행.[52] |
2006년 | 스카이소프트에서 신용카드 정보를 포함한 개인 정보 유출 발생. 이 사건으로 스카이소프트는 폐업함.[52] |
2008년 | 트렌드마이크로, 앳니프티, 크리에이티브 미디어, 카뷰 웹사이트 변조 발생.[54] |
2010년 | 몽벨, 코에이 테크모 홀딩스에서 GAMECITY 회원 개인 정보 유출 발생.[53] |
2011년 | 소니의 플레이스테이션 네트워크에서 대규모 개인 정보 유출 사건 발생.[53] |
2013년 | 엑스코리아 글로벌에서 신용카드 정보 유출 발생. 10만 9112건의 카드 명의자명, 카드 번호, 유효 기간, 보안 코드, 신청자 주소가 유출됨.[53] |
정보처리진흥원(IPA)은 SQL 삽입 공격으로 인한 피해 복구 비용이 1억엔을 넘을 수 있다고 경고했다.[55] 실제로 사운드하우스의 경우, 피해 고객 122,884명에게 1000JPY 상당의 기간 한정 크레딧을 보상해야 했다.
NRI 시큐어가 2007년에 실시한 보안 진단 결과에 따르면, 조사 대상 웹사이트 중 41%가 부정 접근에 취약했으며, 그 중 22%에서 SQL 삽입 공격 취약성이 발견되었다.[56]
참조
[1]
웹사이트
SQL Injection
https://technet.micr[...]
2013-08-04
[2]
간행물
Long short-term memory on abstract syntax tree for SQL injection detection
2021-04
[3]
웹사이트
Hacking NodeJS and MongoDB | Websecurify Blog
https://blog.websecu[...]
2023-11-15
[4]
웹사이트
Imperva Web Application Attack Report
http://www.imperva.c[...]
2012-07
[5]
간행물
NT Web Technology Vulnerabilities
http://www.phrack.co[...]
1998-12-25
[6]
웹사이트
Category:OWASP Top Ten Project
OWASP
2011-06-03
[7]
웹사이트
Category:OWASP Top Ten Project
OWASP
2013-08-13
[8]
서적
IBM Informix Guide to SQL: Syntax
IBM
2018-06-04
[9]
웹사이트
Extracting Multiple Bits Per Request From Full-blind SQL Injection Vulnerabilities
Hack All The Things
2016-07-08
[10]
웹사이트
Using SQLBrute to brute force data from a blind SQL injection point
Justin Clarke
2008-10-18
[11]
웹사이트
Blind SQL Injection tutorial
2012-12-06
[12]
웹사이트
TDSS botnet: full disclosure
http://nobunkum.ru/a[...]
2012-12-06
[13]
웹사이트
Oracle tutorial on SQL injection
https://download.ora[...]
[14]
뉴스
Questions for TalkTalk - BBC News
https://www.bbc.com/[...]
2015-10-26
[15]
웹사이트
MySQL String Literals
https://dev.mysql.co[...]
[16]
웹사이트
Transparent query layer for MySQL
https://raw.org/arti[...]
Robert Eisele
2010-11-08
[17]
웹사이트
MySQL SELECT Statement
https://dev.mysql.co[...]
[18]
웹사이트
MySQL Schema Object Names
https://dev.mysql.co[...]
[19]
웹사이트
SQL Injection Attacks & Prevention: Complete Guide
https://www.appsecmo[...]
2021-02-24
[20]
웹사이트
SQL Injection Prevention Cheat Sheet
https://www.owasp.or[...]
Open Web Application Security Project
2012-03-03
[21]
웹사이트
Guesswork Plagues Web Hole Reporting
http://www.securityf[...]
SecurityFocus
2002-03-06
[22]
웹사이트
WHID 2005-46: Teen uses SQL injection to break to a security magazine web site
http://www.xiom.com/[...]
Web Application Security Consortium
2009-12-01
[23]
웹사이트
WHID 2006-3: Russian hackers broke into a RI GOV website
http://www.xiom.com/[...]
Web Application Security Consortium
2008-05-16
[24]
웹사이트
Anti-U.S. Hackers Infiltrate Army Servers
http://www.informati[...]
Information Week
2016-12-17
[25]
웹사이트
Oklahoma Leaks Tens of Thousands of Social Security Numbers, Other Sensitive Data
http://thedailywtf.c[...]
The Daily WTF
2008-05-16
[26]
뉴스
US man 'stole 130m card numbers'
http://news.bbc.co.u[...]
BBC
2009-08-17
[27]
뉴스
The pirate bay attack
http://krebsonsecuri[...]
2010-07-07
[28]
웹사이트
Did Little Bobby Tables migrate to Sweden?
http://alicebobandma[...]
Alicebobandmallory.com
2011-06-03
[29]
뉴스
Royal Navy website attacked by Romanian hacker
https://www.bbc.co.u[...]
BBC News
2023-11-15
[30]
웹사이트
Super Virus A Target For Cyber Terrorists
http://news.sky.com/[...]
2010-11-25
[31]
웹사이트
Hacker breaks into Barracuda Networks database
http://www.networkwo[...]
[32]
웹사이트
site user password intrusion info
http://www.dslreport[...]
Dslreports.com
2011-06-03
[33]
뉴스
DSLReports says member information stolen
http://news.cnet.com[...]
Cnet News
2011-04-29
[34]
뉴스
DSLReports.com breach exposed more than 100,000 accounts
http://www.thetechhe[...]
The Tech Herald
2011-04-29
[35]
서적
LulzSec hacks Sony Pictures, reveals 1m passwords unguarded
http://www.electroni[...]
2011-06-03
[36]
뉴스
Imperva.com: PBS Hacked - How Hackers Probably Did It
http://blog.imperva.[...]
2011-07-01
[37]
웹사이트
Yahoo reportedly hacked: Is your account safe?
https://www.cbsnews.[...]
2012-07-16
[38]
웹사이트
450,000 user passwords leaked in Yahoo breach
https://www.zdnet.co[...]
2012-07-12
[39]
뉴스
Hackers Breach 53 Universities and Dump Thousands of Personal Records Online
http://bits.blogs.ny[...]
2012-10-03
[40]
웹사이트
Hackers Leak Data Allegedly Stolen from Chinese Chamber of Commerce Website
http://news.softpedi[...]
2013-11-04
[41]
간행물
"'Close-Knit' Russian Hacker Gang Hoards 1.2 Billion ID Creds"
https://www.pcmag.co[...]
PC Magazine
2014-08-05
[42]
뉴스
Russian Gang Amasses Over a Billion Internet Passwords
https://www.nytimes.[...]
The New York Times
2014-08-05
[43]
웹사이트
TalkTalk gets record £400,000 fine for failing to prevent October 2015 attack
https://ico.org.uk/a[...]
2016-10-05
[44]
뉴스
Rookie coding mistake prior to Gab hack came from site's CTO
https://arstechnica.[...]
2021-03-02
[45]
뉴스
Gab, a haven for pro-Trump conspiracy theories, has been hacked again
https://arstechnica.[...]
2021-03-08
[46]
웹사이트
XKCD: Exploits of a Mom
http://xkcd.com/327/
2013-02-26
[47]
웹사이트
The Bobby Tables Guide to SQL Injection
http://www.techrepub[...]
2009-09-15
[48]
웹사이트
Jego firma ma w nazwie SQL injection. Nie zazdrościmy tym, którzy będą go fakturowali ;)
http://niebezpieczni[...]
2014-09-11
[49]
웹사이트
Blind SQL Injection white paper
http://www.spidynami[...]
2011-07-06
[50]
웹사이트
MySQL 5.1 Reference Manual - 9.1.1 String Literals
http://dev.mysql.com[...]
2014-12-08
[51]
웹사이트
異なる文字集合への変換がぜい弱性につながる
https://xtech.nikkei[...]
2011-07-06
[52]
뉴스
丸紅インフォのカード情報漏洩、原因はSQLインジェクション対策の不備
https://internet.wat[...]
インプレス
2007-12-12
[53]
문서
不正アクセスによるお客様個人情報漏洩のお詫びとご報告
http://www.koeitecmo[...]
コーエーテクモホールディングス株式会社
2010-07-20
[54]
문서
JPCERT / CCによる注意喚起
https://www.jpcert.o[...]
[55]
뉴스
Internet Watch - SQLインジェクションの復旧コスト、1億円超える事例も~IPAが報告書、2006年11月29日
https://internet.wat[...]
Internet Watch
2006-11-29
[56]
간행물
Webサイトのセキュリティ診断:傾向分析レポート2008
http://www.nri-secur[...]
NRIセキュア
2008-07-28
[57]
웹인용
Using SQLBrute to brute force data from a blind SQL injection point
http://www.justincla[...]
Justin Clarke
2008-10-18
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com