위는 Challenge 36의 초기 화면이다.

 

" 현재 디렉터리에서 vi editor를 사용하여 index.php 파일을 편집하는 동안 정전으로 인해 소스 코드가 사라졌습니다.
제가 회복할 수 있도록 도와주세요. "

 

vi editor가 정상적으로 종료되지 않았을 때 디렉터리에 숨김파일로 swp파일을 생성한다고 한다.

이는 파일이름.파일확장자.swp 의 형태로 나타난다.

.index.php.swp를 입력해주었더니 파일이 하나 다운로드 되었다.

 

메모장으로 이 파일을 열어주었고, FLAG를 찾을 수 있었다.

 

'Web Hacking > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Challenge 23  (0) 2022.11.12
[webhacking.kr] Challenge 47  (0) 2022.11.06
[webhacking.kr] Challenge 27  (0) 2022.10.09
[webhacking.kr] Challenge 25  (0) 2022.10.02
[webhacking.kr] Challenge 19  (0) 2022.09.24

위는 Challenge 23의 초기 화면이다.

script 태그를 주입하는 것이 미션이라고 한다.

 

<script>alert(1);</script>를 입력하고 제출버튼을 눌러주었더니 no hack이라는 문구가 출력되었다.

그리고 url이 다음과 같이 변경되었다.

index.php?code=%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E

 

몇 개 입력을 해보았더니 문자를 2개 이상 붙여 입력해주면 no hack이라는 문구가 떴다.

 

연속적인 문자열 입력을 막기 위해 null 바이트 (%00)을 글자 사이마다 넣어서 입력해보았다.

index.php?code=%3C%00s%00c%00r%00i%00p%00t%00%3E%00a%00l%00e%00r%00t%00%28%001%00%29%00%3B%00%3C%00%2F%00s%00c%00r%00i%00p%00t%00%3E
 
이를 url에 입력해주었더니 성공할 수 있었다.

'Web Hacking > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Challenge 36  (1) 2022.11.19
[webhacking.kr] Challenge 47  (0) 2022.11.06
[webhacking.kr] Challenge 27  (0) 2022.10.09
[webhacking.kr] Challenge 25  (0) 2022.10.02
[webhacking.kr] Challenge 19  (0) 2022.09.24

 

위는 Challenge 47의 초기 화면이다.

 

send버튼을 눌렀을 때 아래와 같이 메일이 발송되었다는 문구가 떴다.

 

SMTP는 이메일을 보내기 위해 이용하는 프로토콜이다.

해당 문제는 메일과 관련된 취약점인 SMTP Header Injection을 이용하였다. 이는 cc와 bcc를 이용하여 지정한 이메일로 메일을 전송해준다.

 

코드는 다음과 같았다.

줄바꿈이 가능하도록 하기 위해 input을 textarea로 변경해주었다.

 

바꿔주었던 textarea에 

Flag

Bcc: 이메일주소

를 적어서 send버튼을 눌러주었다.

 

이를 통해 문제를 해결할 수 있었다.

 

'Web Hacking > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Challenge 36  (1) 2022.11.19
[webhacking.kr] Challenge 23  (0) 2022.11.12
[webhacking.kr] Challenge 27  (0) 2022.10.09
[webhacking.kr] Challenge 25  (0) 2022.10.02
[webhacking.kr] Challenge 19  (0) 2022.09.24

위는 Challenge 27의 초기 화면이다.

 

view-source를 이용해 아래 코드를 확인해주었다.

<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 27</title>
</head>
<body>
<h1>SQL INJECTION</h1>
<form method=get action=index.php>
<input type=text name=no><input type=submit>
</form>
<?php
  if($_GET['no']){
  $db = dbconnect();
  if(preg_match("/#|select|\(| |limit|=|0x/i",$_GET['no'])) exit("no hack");
  $r=mysqli_fetch_array(mysqli_query($db,"select id from chall27 where id='guest' and no=({$_GET['no']})")) or die("query error");
  if($r['id']=="guest") echo("guest");
  if($r['id']=="admin") solve(27); // admin's no = 2
}
?>
<br><a href=?view_source=1>view-source</a>
</body>
</html>

위 코드와 같이 id가 admin이면 된다.

admin's no는 2라고 적혀있다.

 

id='guest' and (0) or no like 2-- 를 통해 no를 2로 만들어주었다.

 

?no=0%29%09or%09no%09like%092--%09

 

 

 

'Web Hacking > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Challenge 23  (0) 2022.11.12
[webhacking.kr] Challenge 47  (0) 2022.11.06
[webhacking.kr] Challenge 25  (0) 2022.10.02
[webhacking.kr] Challenge 19  (0) 2022.09.24
[webhacking.kr] Challenge 20  (0) 2022.09.18

+ Recent posts