메인화면입니다.

소스보기입니다.

음.. 특별한 것은 없어보입니다.

게스트로 로그인을 해보겠습니다.

성공이네요 ~

그럼 'admin'으로 로그인해보겠습니다.

실패가 뜹니다.

인젝션이 먹히나 해시도해보았습니다.

1 or 1=1을 no값으로 넣어보았습니다.

필터링 되는 것 같습니다.

1||1=1 은 성공했습니다.

이번엔 no=2가 존재하는지 확인해보겠습니다.

그냥 no값에 2를 넣었을때는 fail이 떳습니다.

하지만 -1||no=2 를 했을때는 다른 결과를 얻었습니다.

no=2의 존재는 확인했습니다.

"admin password"문자열로 보아 id가 admin인 것 같습니다.

이후 여러 테스트를 해본결과 아래와 'select', '공백'이 필터링 되는 것을 확인했습니다.

-1||no=if((substr(database(),1,1))in("c"),1,2)

위와 같은 쿼리를 만들어 데이터베이스명을 한번 검색해보았습니다.

이를 토대로 테이블 명을 찾아보려 했으나 'select'가 필터링 되어 알아낼 수 없었습니다.

그럼 바로 해당 테이블의 첫번째 행의 pw를 알아보도록 하겠습니다.

위와 같은 DB를 구성하여 테스트를 진행했습니다.

이를 파이썬코드로 짜면!

결과는!

두번재 pw행의 pw를 확인해보겠습니다.

파이썬 코드로 짜면!

"luck_admin"이라는 결과를 얻었습니다.

이제 이를 제출해보겠습니다.

챌린지 40 성공!

제가 짠 파이썬코드도 첨부하겠습니다~

첨부파일
challenge40.py
파일 다운로드

'WAR GAME > Webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Level42 (old)  (311) 2020.04.28
[webhacking.kr] Level41 (old)  (311) 2020.04.28
[webhacking.kr] Level39 (old)  (310) 2020.04.28
[webhacking.kr] Level38 (old)  (298) 2020.04.28
[webhacking.kr] Level37 (old)  (328) 2020.04.28

+ Recent posts