비밀번호 초기화

단순 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 Ⅳ 참여

로그인 성공 실패 외에 또 다른 선택지가 있는지 고민해보시면 좋을 것 같아요

2024.05.10. 08:44
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기