simple_sqli 풀이
2021. 5. 8. 22:47ㆍDreamhack 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을 감싸고 있는 따옴표가 쌍따옴표이니 이점만 주의하면 됩니다.
admin 뒷부분을 주석처리 하기 위해 "로 끊고,
그 뒤에는 주석을 뜻하는 --을 더해줍니다.
여기서 password는 어차피 주석처리가 되니
아무거나 막 입력해도 상관이 없습니다.
획득한 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 |