티스토리 뷰

SCP 동아리에서 학과 행사로 주최한 CTF로 초보자들을 위한 난이도입니다.

제가 출제했던 WEB 문제들의 출제 의도와 write-up입니다.

 

링크 : http://jbuctf.online/

 

JBU CTF

 

jbuctf.online

 

문제 이름 : admin_login

 

 

출제 의도 : sql query문을 보면 sql 취약점을 알 수 있는지 확인

 

 

문제 풀이 

메뉴바를 누르고 Admin Login으로 이동한다.

 

 

주어진 값이 없으므로 임의의 값 password를 입력해본다.

 

 

 

로그인 버튼을 눌러보면 하단에 다음과 같은 내용이 나타난다.

 

password에는 입력한 password라는 값이 출력되었는데 sql query에는 cnffjbeq라는 값이 들어있다.

여기서 두가지를 알 수 있어야 하는데 

 

1. sql query문의 형태를 보니 sql injection 문제인 것 같다.

2. 입력한 password 값이 쿼리문에 들어가면서 cnffjbeq로 변조되었다.

 

 

입력 창에 sql injection의 대표 구문인 ' or '1'='1을 넣어보니 이번엔 ' be '1'='1' 로 변조된 것을 알 수 있다.

 

그리고 cnffjbeq를 구글링해보면 password를 암호화하면 나오는 값임을 알 수 있다.

마찬가지로 cnffjbeq를 암호화해주면 password가 나온다.

 

그러므로 쿼리문에 들어갈 값이 ' or '1'='1 가 되게 하고 싶으면, ' be '1'='1'를 넣어주면 된다.

이렇게 넣어주면 sql injection이 발생하면서 플래그가 나온다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday