A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ko/docs/Glossary/SQL_Injection below:

SQL ì¸ì ì…˜ (SQL Injection) - MDN Web Docs 용어 ì‚¬ì „: 웹 용어 ì •ì˜

사용자 이름과 비밀번호를 입력한 후 GUI 뒤에서 SQL 쿼리는 아래와 같이 작동합니다.

"SELECT Count(*) FROM Users WHERE Username=' " + txt.User.Text+" ' AND Password=' "+ txt.Password.Text+" ' ";

이제 사용자가 사용자 이름을 admin, 비밀번호를 passwd123을 입력한다고 가정하고, 로그인 버튼을 클릭하면 SQL 쿼리가 아래와 같이 실행됩니다.

"SELECT Count(*) FROM Users WHERE Username=' admin ' AND Password=' passwd123 ' ";

자격 증명이 정확하면, 사용자의 로그인이 허용되므로, 매우 간단한(따라서 안전하지 않은) 메커니즘입니다. 해커는 이러한 불안정성을 이용하여 무단 접근을 얻습니다.

해커는 Magical String이라는 간단한 문자열을 사용합니다. 예를 들면, 아래와 같습니다.

사용자 이름: admin

비밀번호: anything 'or'1'='1

로그인 버튼을 클릭하면, SQL 쿼리가 아래와 같이 작동합니다.

"SELECT Count(*) FROM Users WHERE Username=' admin ' AND Password=' anything 'or'1'='1 ' ";

위 쿼리의 비밀번호 섹션을 자세히 살펴보세요.

Password=' anything 'or'1'='1 '

비밀번호는 'anything'이 아니므로, password=anything의 결과도 거짓(FALSE)이지만, '1'='1'은 참(TRUE) 문이므로 TRUE 값을 반환합니다. 마지막으로, OR 연산자로 인해, 값(FALSE 또는 TRUE)이 TRUE이므로, 인증 우회에 성공합니다. 단순한 문자열(Magical String) 때문에 전체 데이터베이스가 손상되었습니다.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4