발자취

#12 RAON CTF 문제 풀이-3 (Command Injection 1,2 / SQL Injection 1,2,3) 본문

3-1/웹 어플리케이션 보안

#12 RAON CTF 문제 풀이-3 (Command Injection 1,2 / SQL Injection 1,2,3)

해린 2023. 5. 23. 12:51

#01 Command Injection
1. Level 1: Command Injection을 통해 "password.php" 파일을 읽기

문제 사이트의 모습이다. 아이피 주소를 입력하면 되는 것으로 보인다.
 

간단하게 아이피 주소와 함께 '|' 기호를 이용해 cat 명령어를 함께 입력해주면 password.php 파일의 내용을 확인할 수 있다!
 
 
2. Level 2: Command Injection을 통해 "password.php" 파일을 읽기

이번에도 127.0.0.1 | cat password.php를 입력해보았는데 공격에 실패하였다.
 

127.0.0.1 $(cat password.php)를 입력하여 간단하게 해결하였다.
 
 
#02 SQL Injection 실습
1. Level 1: 로그인 서비스의 취약점을 이용하여 로그인 하세요.

로그인 회피를 위해 id에 'admin--'을, 패스워드에 아무 문자열을 입력하였다.
--는 뒤의 문장을 모두 주석문으로 만들어버리기 때문에 관리자로 로그인이 가능할 것이다.
주석문 뒤에는 공백이 무조건 존재해야한다! 이것 때문에 오랫동안 헤맸다,,
 

성공하였다!
 
 
2. Level 2로그인 서비스의 취약점을 이용하여 로그인 하세요. 관리자로 로그인하셔야 합니다.

2번 문제는 1번 문제에 관리자로 로그인해야한다는 조건만 추가되었다.
나는 애초에 1번 문제도 관리자로 로그인하는 방식을 사용했기 때문에 그대로 id에 'admin--', 패스워드에 아무 문자열을 입력해주면 성공 메시지가 뜰 것이다.
 
3. Level 3: 로그인 서비스의 취약점을 이용하여 로그인 하세요. 관리자로 로그인하셔야 합니다.

3번에도 id에 'admin--', 패스워드에 아무 문자열을 입력해보았더니 위와 같은 팝업창이 떴다.
 

id에 "를 입력해보았더니 위와 같은 에러문이 나왔다.
'가 아닌 "로 값을 감싸는 것을 확인할 수 있다.
 

id 자리에 admin'-- 가 아닌 admin"--를 입력해주면
 

정상적으로 로그인 우회가 되는 것을 확인할 수 있다.