Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- sql injection
- stored procedure
- AWS
- GRE
- HSRP
- IDS
- ACL
- arp
- UTM
- NETSEC
- 보안 솔루션
- Blind SQL Injection
- Router Firewall
- Web
- Vlan
- snmp
- Websec
- VPC
- DHCP
- csrf
- wireshark
- SQL
- XSS
- Web Authentication
- Database Scheme
- VPN
- web server
- Mass SQL Injection
- docker
- Linux
Archives
- Today
- Total
yuil :: SecOps
[WebSec] SQL Injection 본문
SQL Injection
사용자가 서버에 제출한 데이터가 SQL Query로 사용되어 Database나 시스템에 영향을 주는 공격기법

입력 데이터에 대한 검증이 없어서 발생하는 문제
웹 어플리케이션의 일반적인 인증절차

SQL Injection 가능성 확인하기

인젝션 벡터 찾기
SQL Injection을 이용한 인증우회

#인증에 취약한 코드 예
chkUser = false
id = request("user_id")
password= request("user_pw")
strSQL="select user_id, user_pw, name, email, homepage from member
where user_id=' " & id & " ' and user_pw=' " & password & " ' "
set Rs=DBconn.execute(strSQL)
if not Rs.eof then chkUser = true
인증에 사용되는 SQL Query
SELECT * FROM user_table WHERE id='사용자입력값' and pw='사용자입력값'
#입력된 id 와 pw가 만족하는 레코드셋을 가져오게 된다.
SELECT * FROM user_table WHERE 1=1
모든 행이 반환
SELECT * FROM user_table WHERE 1=2
어떤 레코드 셋도 반환되지 않는다.


특정 ID의 권한으로 로그인 하기

변환 에러를 이용한 데이터 알아내기

UNION을 이용한 데이터 알아내기

반응형
'Web Security' 카테고리의 다른 글
| [WebSec] Stored Procedure (0) | 2025.10.23 |
|---|---|
| [WebSec] Blind SQL Injection (0) | 2025.10.22 |
| [WebSec] SQL Basic (0) | 2025.10.20 |
| [WebSec] CSRF (Cross Site Request Forgery) (0) | 2025.10.16 |
| [WebSec] XSS (Cross Site Scripting) (0) | 2025.10.15 |
