simple_sqli 풀이

2021. 5. 8. 22:47Dreamhack Wargame

728x90

문제 제목
문제 정보

우선 항상 하던대로 접속정보를 따라 웹페이지에 접속하고

문제 파일을 다운받았습니다.

이번 문제 역시 Python 파일입니다.

 

문제에서 제시된 코드
웹페이지 로그인 화면

로그인을 하기 전에 우선 코드를 보겠습니다.

코드 하단 부분에

if userid=='admin':

라는 부분이 있습니다.

 

우리가 로그인 해야 할 관리자 계정의 id는 admin으로 고정되어 있다는겁니다.

 

res = query_db(f'select * from users where userid="{userid}" and userpassword="{userpassword}"')

라는 부분은 우리가 로그인 할 때 쓰여지는 쿼리문을 나타냅니다.

 

여기서 {userid}를 admin으로 바꿔 작성해보면

res = query_db(f'select * from users where userid="admin" and userpassword="{userpassword}"')

이 됩니다.

 

현재 패스워드를 모르는 상태니까

이 뒷부분을 주석으로 처리하면 문제가 풀릴 것 같습니다.

+) admin을 감싸고 있는 따옴표가 쌍따옴표이니 이점만 주의하면 됩니다.

 

id와 password를 입력한 화면

admin 뒷부분을 주석처리 하기 위해 "로 끊고,

그 뒤에는 주석을 뜻하는 --을 더해줍니다.

 

여기서 password는 어차피 주석처리가 되니

아무거나 막 입력해도 상관이 없습니다.

 

FLAG 획득 완료

획득한 FLAG를 입력란에 넣고 제출해주면 문제가 풀립니다.

 

SQL injection의 기본을 다질 수 있는 문제였습니다.

728x90

'Dreamhack Wargame' 카테고리의 다른 글

basic_exploitation_001 풀이  (0) 2021.07.10
broken-png 풀이  (0) 2021.06.03
pathtraversal 풀이  (0) 2021.05.29
file-download-1 풀이  (0) 2021.05.09
cookie 풀이  (0) 2021.03.09