일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- php login page
- Reconnaissance
- Server Side Request Forgery
- active reconnaissance
- access control
- THM
- active recon
- php To Do List
- php 파일 업로드하기
- privilege escalation
- OS Command Injection
- Authentication
- over the wire
- overthewire
- Cryptography
- War Game
- php file upload
- sql injection
- ssrf
- tryhackme
- FTZ
- Leviathan
- BANDiT
- SQLi
- 파일 업로드 취약점
- Cookie
- php 로그인 페이지 만들기
- file upload
- Recon
- php
- Today
- Total
R's Hacking Daily Log
SQLi (2) & Lab 본문
SQLi과 관련하여 살펴볼 두 번째 case는
"Subverting application logic"이다.
:) application의 로직대로 따르지 않을 테야!! 라는 느낌이다.
:) 이해를 돕기 위해 사용자의 username & password로 로그인을 하는 application이 있다고 상상해 보자.
wiener이라는 계정을 로그인하기 위해 사용자는 username & password를 입력했다.
SELECT * FROM users WHERE username = 'wiener' AND password = 'bluecheese'
서버는 사용자의 input 값을 가지고 DB에
username은 wiener이고 password는 bluecheese인 user 내용을 확인해 볼 것이다.
이 결과를 토대로 사용자는 로그인이 되거나 안 되거나. 여부가 판가름 날 것이다.
이런 상황에서 공격자는 password를 모르지만 임의의 계정으로 로그인을 하고 싶어 한다고 가정해 보자.
공격자는 아마도 다음과 같은 query를 만들 수 있을 것이다.
SELECT * FROM users WHERE username = 'wiener'--' AND password = 'idontknow'
-- (double dash)를 사용해 password 부분은 주석처리 되도록 하고 wiener이라는 값을 username input으로 사용했다.
이렇게 되면 비밀번호를 모르더라도 wiener이라는 계정이 존재한다면 성공적으로 로그인을 할 수 있게 된다.
같은 원리로 공격자가 administrator 계정으로 로그인을 하고 싶다고 한다면
SELECT * FROM users WHERE username = 'administrator'--' AND password = ''
username input으로 들어가는 값을 administrator'--로 입력하면 password가 무엇이든 간에 administrator 계정으로 로그인할 수 있다.
[Subverting application logic - Lab]
이번 lab의 목적은
administrator user로 로그인하는 것이다!!
lab에 들어가면 My account 버튼을 볼 수 있다.
클릭해 보니 login form이 하나 보인다.
username = 'administrator'--'로 input이 들어갈 수 있게 값을 넣어주고 password는 아무거나 입력해 준다.
(어차피 주석 처리될 것이기 때문에)
Enter를 눌러주면 성공적으로 sql injection이 실행된 걸 볼 수 있다.
'Port Swigger > SQL Injection' 카테고리의 다른 글
SQLi (4) (0) | 2023.04.28 |
---|---|
SQLi (3) - Lab (0) | 2023.04.28 |
SQLi (3) (0) | 2023.04.27 |
SQLi (1) - Lab (0) | 2023.04.26 |
SQLi (1) (0) | 2023.04.26 |