비밀번호 초기화
단순 Blind SQLi를 사용해서 32자리를 얻게 된다면 한 글자마다 참인 값이기에
actual_username = ret[1]
actual_password = ret[2]
if username != actual_username or password != actual_password:
reset_password()
session['tries'] = 0
msg = 'What? you are hacker! I reset password!'
return render_template('login.html', msg=msg)
해당 코드로 인해 계속 초기화 된다고 생각합니다.
SQL query에 의해 SQLi 포인트는 한 부분인 거 같고, SQLi 하자니 참이 되면 비밀번호가 초기화되고 거짓만 된다면 비밀번호를 알 방법이 없고 그렇다면 참이 아니면서 SQLi를 통해 비밀번호 얻는 접근 방식을 어떻게 달리 해야할 지 의문입니다...
#web
작성자 정보
답변
1
geeneoning
Dreamhack CTF S2 Ⅳ 참여
로그인 성공 실패 외에 또 다른 선택지가 있는지 고민해보시면 좋을 것 같아요