문제

Admin is Mine

50

admin 계정으로 로그인하자!

현재 우리의 계정은 다음과 같다. [ID/PW] : doldol / dol1234

 


SQL Injection을 테스트하기 위해 ID = doldol' #  PW=dol1234로 요청을 보내보니 아래와 같은 결과를 볼 수 있었다.

 

보낸 #이후의 값이 없다.

 

예상으로는 #* 와같은 정규식으로 SQL 보내기 전 replace를 한다면 발생 할 수 있을 것 같다.

그렇다면 or는 동작할가?

 

일단 전송하는 단에서는 replace가 안되는 것으로 보인다.

 

그렇다면 doldol' or '1'='1로 전송을 보내보자 

실행되는 쿼리는 id='doldol' or '1'='1' and pw='dol1234'로 예상된다.

 

실패하는 것을보니 다른 방법으로 SQL Injection을 막는것 같다.

 

history를 찾아보자 

 

찾다보니 login.js 라는 파일을 찾았다.

응답 값으로부터 resultData가 'ok'라면 로그인 성공이라고 한다. 

응닶으로 오는 값을 ok로 바꿔보자

Action > Do intercept > response to this request

클릭해주고 forward를 누르면 해당 리퀘스트에 대한 response를 인터셉트 할 수 있다.

 

요청이 fail로 들어왔다. 이를 ok로 변조하여 전달해보

 

 

 

정답을 찾을 수 있었다.

+ Recent posts