[WARGAME] DVWA write-up/ Javascript/ medium

jckim22·2022년 10월 29일
0

[WEBHACKING] STUDY (WARGAME)

목록 보기
44/114

/*

웹서버 환경: Window 10

공격 클라이언트 환경: Kali linux (VMware 구동)

*/

low풀이

https://velog.io/@jckim22/%EB%B9%A1%EA%B3%B5%ED%8C%9F-5%EC%A3%BC%EC%B0%A8-%EA%B3%BC%EC%A0%9C-15-DVWA-write-up-Javascript-row

low레벨에서보다 js 코드를 더 잘 읽을 수 있어야 풀 수 있는 문제이다.
아래를 보게되면 id = token 이고 value가 XXeMegnahCXX라는 token이라는 name의 페이로드가 hidden으로 되어있다.

먼저 패킷을 잡아보자
아래는 잡은 패킷이다 아까 본대로 페이로드들이 잘 요청되었다.

이제 아래 js코드를 살펴보자

function do_something(e){
	for(var t="",n=e.length-1;n>=0;n--)
    		t+=e[n];
       		return t
}

setTimeout(function(){do_elsesomething("XX")},300);

function do_elsesomething(e){
	document.getElementById("token").value=do_something(e+document.getElementById("phrase").value+"XX")
}

코드를 해석하면 setTimeout이 do_elsesomething을 호출한다.
do_elsesomething은 id가 token인 Element의 value를 XX+phrase+XX라는 인자로 do_something을 호출하면서 그 반환값으로 바꿔준다.
do_something을 보면 문자열을 역순으로 바꿔준다는 것을 알 수 있다.
그러면 XX입력한값XX가 XX값한력입XX 라는 토큰이 될 것이다.
가운데가 입력한 값이므로 토큰과 입력 phrase를 같게 패킷을 조작하면 성공할 것 같다.

아래 패킷을 success로 바꿔주자 .

그렇게 되면 아래처럼 성공적으로 Well done!이 출력된 것을 볼 수 있다.

profile
개발/보안

0개의 댓글