목록전체 글 (151)
김승현
이전 문제와 비슷한 것 같다. 접속해보자. vvvv Irish-Name-Repo 1문제 링크는 여기 vvvv [PicoGym] Irish-Name-Repo 1 웹사이트에서 로그인을 해보라는 문제인 것 같다. 접속하면 이렇게 사람들 얼굴이 뜨고 왼쪽 위에 메뉴창이 있다. 메뉴를 눌러보자. 누르면 이렇게 close Menu, Support, Admin Login페이지가 뜬다. 당연 kshind.tistory.com 바로 Admin Login 페이지로 넘어가보자. (admin login 등 처음 보는 개념이라면 위의 주소로 갔다 와보자) 딱히 다른 게 없어 보인다. ' or 1=1 -- 위의 쿼리문을 입력해보자. 그랬더니 SQLi가 감지됐다고 한다. username 부분을 고쳐가면서 검사하는 부분을 확인해보자..
웹사이트에서 로그인을 해보라는 문제인 것 같다. 접속하면 이렇게 사람들 얼굴이 뜨고 왼쪽 위에 메뉴창이 있다. 메뉴를 눌러보자. 누르면 이렇게 close Menu, Support, Admin Login페이지가 뜬다. 당연히 Admin Login으로 가보자. 그냥 가볍게 SQL Injection을 해보면 될 것 같다. ' or 1=1 -- 위와 같이 입력해보자. 아주 간단하게 문제가 풀렸다. 300점 치곤 난이도가 진짜 너무 쉽다. 아마 이름 보고 어려워 보여서 안 푼 건가..? 사실 내가 어려워 보여서 손 안 대던 문제긴 하다.
soap문제이고 힌트로는 XML external entity Injection라고 적혀있다. 제목에 적혀있는 soap란 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜이라고 하고 힌트처럼 XML과 관련된 공격을 찾아보면 될 것 같다. 일단 웹사이트로 가보자. 접속하면 이런 화면이 나온다. details를 눌러보자. 이런 자세한 정보가 나오는 것 같다. 프록시를 잡아서 바꿔보자. 이렇게 xml이 있는데 ID 태그 내의 숫자의 범위가 아마도 1~3인 것 같으니 0을 넣어서 보내보자. 사용 불가능한 ID라고 한다. SOAP와 XML에 대해서 검색해보니까 XXE라는 공격이 있는 것 같다. 시도해보자. 이런식으로 xml에 /etc/passwd를 확인하는 코드를 작성했다.
power cookie라는 문제고 웹사이트에서 flag를 찾으라고 한다. 웹사이트로 이동해보자. 접속하면 이렇게 생겼다. continue as guest를 클릭해보자. check.php로 이동이 되고 guest로는 서비스를 이용할 수 없다고 한다. 소스코드를 확인해보자. Online Gradebook Continue as guest index.html의 내용이고 잘 보면 script태그로 guest.js를 실행한다. 아까 guest일 때는 서비스를 이용할 수 없다고 했기 때문에 guest.js도 한번 확인해보자. function continueAsGuest() { window.location.href = '/check.php'; document.cookie = "isAdmin=0"; } /check.ph..
필터링을 피해서 admin으로 로그인하라고 한다. 일단 기본 웹사이트로 접속해보자. 이렇게 로그인하는 창이 뜬다. filter.php로 가보자. round1의 필터는 or이라고 한다. or 대신 ||을 쓸 수도 있지만 그냥id에 admin' --만 입력해도 클리어할 수 있다. 이젠 or과 and 그리고 =과 =을 우회할 떄 사용되는 like랑 주석인 --가 필터링되었다. 이번엔 주석으로 --대신 ;를 사용해보자. ;는 쿼리문의 마무리를 알려주는 특수문자여서 뒤는 무시하게 해준다. 똑같이 입력해보자. 이번엔 admin이 필터링 됐다. adm' || 'in'과 같이 입력해도 admin으로 받아들여진다. 입력해보자. 똑같이 입력해보자.