[LOS] - goblin / orc

SONG's 보안·2024년 3월 9일

웹해킹

목록 보기
12/15

https://los.rubiya.kr/gate.php


goblin

이미 아이디는 guest로 되어있고, no= 가 무엇을 의미하는지 몰라 아무 숫자나 넣어보았다.

no = 1일 때, 게스트 계정이므로 admin 계정도 또다른 숫자일 가능성이 있다.

그러나 0 과 2를 넣었을 때, 아무런 반응이 없다.

그 이유는 이미 id가 guest라서 그렇다.

그럼 앞에 id를 거짓으로 만들고 참인 no 값을 찾아준다.

하나씩 넣어보니 no = 2일 때, admin 이였다.

id='guest' and no=0으로 해당 구문을 거짓으로 만든 후, or 구문으로 admin의 no를 주면 admin의 계정을 불러오는 쿼리문을 만들었다.


orc

처음에 풀었던 문제와 동일한 쿼리문을 추가해보았다.

pw=' or '1'='1

이렇게 뜨고 성공했다는 말이 뜨지않았다.

다시 위에 코드를 잘 보면, addslashes 함수가 보인다.

addslashes 함수는 ', ", \ 등의 특수문자가 db 내에서 문자로 인식될 수 있도록 해당 문자를 이스케이프(escape) 시켜주는 함수이다.

그 아래 if문을 보면 실제 admin의 pw를 알아야 완성이라는 것을 알 수 있다.

pw=1' or id='admin' and length(pw)=인자--%20

lenth 함수를 이용해서 pw의 길이를 알아낸다.

pw=1'은 id='admin'을 거짓으로 만들어주고, --앞 숫자가 옳으면 참이 되어hello admin이 화면에 뜰 것이다.

인자 3일 때, 거짓 / 인자 8일 때, 참

이제 실제 pw를 찾아봐야하는데, 코드를 보면 아스키코드를 이용해서 찾을 것이다.

vscode를 이용해서 자동화 프로그램을 이용하겠다.

근데 돌렸는데 안나오는 관계로.. ^^ 다른 블로그의 힘을 빌려 찾아보니

095a9852가 나온다고 한다.

pw에 넣어주면 완성

profile
前) SWLUG 27기

0개의 댓글