외로운 Nova의 작업실

insecurebankv2 - 취약한 패스워드 변경 실행 본문

Mobile App Penetesting/Android App Vulnerability

insecurebankv2 - 취약한 패스워드 변경 실행

Nova_ 2023. 6. 5. 11:07

- 취약점 소개

취약한 패스워드 변경 실행은 패스워드 변경 과정에서 발생하며, 개발자의 실수로 불필요한 로그를 남겨 패스워드를 노출하는 취약점 입니다.

 

- 취약점 진단

nox에서 비밀번호를 변경합니다. Nova@123$ -> Jack@123$

서버쪽에 비밀번호가 평문으로 남는 것을 확인할 수 있습니다. 또한 logcat을 하게되면,

핸드폰 자체의 로그에도 비밀번호가 평문으로 되는 것을 볼 수 있습니다. 이와 관련한 코드를 봐보겠습니다.

@app.route('/changepassword', methods=['POST'])
def changepassword():
    #set accounts from the request 
    Responsemsg="fail"
    newpassword=request.form['newpassword']
    user=request.form['username']
    print newpassword
    u = User.query.filter(User.username == user).first() #checks for presence of user in the database
    if not u:
        Responsemsg="Error"
    else:
	Responsemsg="Change Password Successful"
	u.password = newpassword
        db_session.commit()
    data = {"message" : Responsemsg}
    print makejson(data)
    return makejson(data)
    
'''
The function handles the transaction module
'''

print newpassword 구문으로 새로 변경한 비밀번호를 불필요하게 평문으로 남기고 있음을 볼 수 있습니다.

 

- 취약점 대응방안

로그 파일에 패스워드를 평문으로 저장하면 로그파일에 접근할 수 있는 사람 모두가 패스워드를 알아낼 수 있습니다. 따라서 높은 수준의 암호화알괴즘을 사용하여 패스워드를 관리해야하며 쉽게 접근할 수 없는 저장소나 암호화된 상태로 저장해야합니다.

Comments