[WARGAME] DVWA write-up/ Command Injection/ medium

jckim22·2022년 10월 26일
0

[WEBHACKING] STUDY (WARGAME)

목록 보기
32/114
post-thumbnail

위 사진은 오류인 것 같습니다.

/*

웹서버 환경: Window 10

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

*/

아래는 low풀이이다.
low레벨 풀이

이번 문제에서는 CommandInjection으로 사용자의 hostname을 알아내야한다.
내 아파치 서버는 윈도우에서 돌아가기 때문에 system 명령어들도 전부 윈도우 터미널 기준이다.
low level때 처럼 ip && dir로 ping이 성공하게 되면 자동으로 나의 윈도우서버에 ls를 보여주는 dir 명령어를 사용하여 그 정보들을 빼오려고 했다.

하지만 아래처럼 dir 매개 변수가 잘못되었다고 뜬다. 무슨 이유인지 모르겠지만 &&는 필터링이 되어있는 것 같다.

그래서 전자가 에러가 나면 후자가 실행되는 ||메타 문자를 사용해보았다.

그랬더니 전자에 ping이 오류가 나면서 뒤에 dir이 실행되었고 low 때 만들어 놓은 Hacked.py도 보인다.

그럼 이제 || hostname으로 호스트네임을 확인하자
입력했더니 아래오 같은 결과가 나왔다.

ping이 에러가 나면서 ping의 도움말이 뜨고 맨 밑에 hostname이 뜬 걸 볼 수 있다.

마지막으로 아래 코드를 보면 &&, ;이라는 메타코드만 필터링 된 것을 볼 수 있다.

	$target = $_REQUEST[ 'ip' ];

	// Set blacklist
	$substitutions = array(
		'&&' => '',
		';'  => '',
	);

	// Remove any of the charactars in the array (blacklist).
	$target = str_replace( array_keys( $substitutions ), $substitutions, $target );
profile
개발/보안

0개의 댓글