[ Admin lost password ]
이건 뭔가 했는데
이미지에 힌트가 있었다.

HxD로 열면 보이는 admin의 비번

[ Without password ]
비번 없이 로그인은 뭐니뭐니해도 SQL이지~


[ Admin password reset ]
[WebGoat] Challenges - Admin password reset
메일로 reset password 링크 보내줌 -> webwolf에서 보면 링크 확인 가능 링크 클릭하면 이렇게 나옴 -&...
blog.naver.com
개 어렵다.... 이분대로 하는게 제일 똑똑한 풀이인듯 하다.

.git 으로 이거 자체를 다운받는다.

git log를 통해 해당 페이지에서 일어난 git commit 기록을 확인한다.

해당 git log로 이동해서 파일 확인
git show

hardcoded key를 제거했다고 한다.

코드를 jadx로 확인

strArr.length를 통해 java main 코드의 인자값의 항목 개수를 확인하고 있다.
username과 key, 두가지 파라미터를 입력하고 있지 않다면 "Need a username and key" 메시지를 출력하며 link를 만들지 않는다.
해당 코드는 git에서 확인했듯 key 값이 hardcoding 되어 있던걸 삭제한 후의 코드이다. 말그대로 admin의 링크를 만드는데 사용한 key값이 제거되었기 때문에 우리가 찾으려는 이미 만들어진 admin의 링크값을 찾지 못한다.
이보다 전 git 코드로 이동하자.


해당 코드는 key 값이 hardcoding 되어 있고 파라미터로 들어오는 인자값이 하나만 있으면 link가 생성된다.
username을 admin으로 하면 admin의 reset link가 무엇이었는지 동일하게 나올 것이다.

자바로 해당 class와 파라미터 admin을 실행시켜 link를 만들었다.

MD5처리된 링크값을 url 뒤에 넣어주니 성공!
[ Without account ]

뭘 해도 안됀다. 입력 자체가 없다. POST로 바꿔보자.

Method가 아니라고 한다. 사용가능한 Method를 확인하자.
HTTP OPTIONS method로 사용 가능한 메소드를 확인할 수 있다.

HTTP HEAD 메소드 : 특정 리소스를 GET 메서드로 요청했을 때 돌아올 헤더를 요청 / 헤더 정보 이외에는 어떤 데이터도 보내지 않는다. 웹서버 다운 여부 점검 or 웹 서버 정보를 얻기 위해 사용 가능.


'강의 및 교육 > Inflearn - Webgoat' 카테고리의 다른 글
SQL Injection (advanced) (0) | 2022.03.07 |
---|---|
SQL Injection (intro) (0) | 2022.03.06 |
Server-Side Request Forgery - 3, 4 (0) | 2022.03.03 |
Cross-Site Request Forgeries - 7, 8 (0) | 2022.03.02 |
Cross-Site Request Forgeries - 3, 4 (0) | 2022.03.02 |