2020.09.20 - [정보보안/정보보안 실습] - [정보보안] Login SQL Injection 실습
약 3년전 실습은 "모의해킹"을 위해 만들어진 페이지에서 진행되었다.
현재 실습은 모의해킹을 위해 본인이 작성한 웹페이지에서 진행되었으며
"실습용으로 구축된 취약한 사이트에 대해 진행 되었으며, 실제 사이트에서 SQL Injection으로 해킹을 시도하는 것은 불법 행위입니다."
https://github.com/silver-liq9118/php_website_basic
해당사이트를 직접 서버를 올려 진행하였다.
1. 로그인 화면에서 고의의 에러 발생시키기
로그인 화면에서 임의의 SQL을 입력하여 에러를 발생시켜 DB정보를 탈취한다.
ID : 1' or 1 = 1
→ 1=1 이라는 항상 참이 되는 값을 이용하여 ID를 우회한다.
PWD : asd (임의의값)
→ 임의의 값을 이용하여 데이터베이스 오류를 유도 했다.
해당 서비스는 MariaDB Server를 사용함을 알 수 있다.
mysqli->query 구간과 snytax to use near "AND password=''' 를 통해
ID PWD서비스에서 SELECT email, password from (테이블) where email = email and password and password 을 사용하고 있음을 추측할 수 있다.
ID:ID : 1' or 1 = 1#
PWD : asd (임의의값)
을 통해 # 뒤에오는 구문을 모두 주석처리하여 SELECT email, password from (테이블) email = 1' or 1= 1 # password = password를 통해 password값은 모두 무시되고 1or1 값에 의해 이 SQL 쿼리는 항상 참이 된다.
로그인 우회 성공
서비스에서 ID,PWD입력값 검증을 하지 않았기 때문에 SQL Injection으로 로그인 인증을 우회 할 수 있다.
'정보보안 > 정보보안 실습' 카테고리의 다른 글
[정보보안] SSRF Reflected XSS 실습 (0) | 2023.06.26 |
---|---|
[정보보안] SSRF Stored XSS 실습 (0) | 2023.06.26 |
[정보보안] Webhacking web-24 (0) | 2023.06.26 |
[정보보안] Webhacking web-15 (0) | 2023.06.19 |
[정보보안] Webhacking web-01 (0) | 2023.06.19 |