본문 바로가기

보안

[wargame.kr] login filtering

가을에 풀다가 접은 문제

 

 

sql injection 문제라고 생각했다.

 

위가 소스코드고, 아래는 주석처리 돼있던 부분

 

아이디를 admin으로 해서 패스워드를 브루트포싱하는 건가 했는데 패스워드가 md5 해시돼서 저장되기 때문에 패스워드를 예측하기에는 너무 크립토같아서 제꼈다.

 

그럼 guest나 blueh4g1234ps로 얻어낼 수 있어야 할 것

 

== 연산자에 대해서 찾다가 얼마전 ctf문제에서 ===연산자가 나왔던 게 생각났다.

===는 데이터 타입까지 비교한다는게 기억이 나서 차이점을 찾아보니 

==은 1과 '1'을 같다고 취급하고, ===는 다르다고 취급한다.

 

따라서 차이점을 언급한 글들 에서는 변수값을 비교할 때 ===을 사용하는 것을 권장했다. (이 문제가 '변수 비교에 ===를 쓰지 않았다' 가 포인트였던듯)

 

주소창에 ?붙여서(GET방식) 숫자로 변환한 다음에 쳐보려했는데 POST방식(body에 숨겨서 보냄)이라 그게 안됨

 

한참 저걸 활용할 방법을 찾다가 js는 ==로 비교할 때 대소문자 구분을 안한다는 사실을 찾아냈다. (하...)

 

 

Guest / guest로 로그인 해서 성공했다

 

드디어 풀었당

'보안' 카테고리의 다른 글

[wargame.kr] md5 compare  (0) 2020.01.19
[wargame.kr] DB is really GOOD  (0) 2020.01.15
[wargame.kr] strcmp  (0) 2020.01.14
[wargame.kr] md5 password  (0) 2020.01.12
PE 포맷  (1) 2019.02.24