1)
들어가면 간단한 문구만 뜬다.
소스 코드를 확인하면 소스 코드도 엄청 간단하게 되어 있는데,
<html>
<head>
<title>Challenge 1</title>
</head>
<body bgcolor=black>
<center>
<br><br><br><br><br>
<font color=white>
---------------------<br>
<br>level : 1<br>
<pre>
<a onclick=location.href='index.phps'>----- index.phps -----</a>
</body>
</html>
index부분을 클릭해야 할 것 같아서 클릭했더니 어떤 코드가 뜬다.
<?
if(!$_COOKIE[user_lv])
{
SetCookie("user_lv","1");
echo("<meta http-equiv=refresh content=0>");
}
?>
<html>
<head>
<title>Challenge 1</title>
</head>
<body bgcolor=black>
<center>
<br><br><br><br><br>
<font color=white>
---------------------<br>
<?
$password="????";
if(eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1;
if($_COOKIE[user_lv]>=6) $_COOKIE[user_lv]=1;
if($_COOKIE[user_lv]>5) @solve();
echo("<br>level : $_COOKIE[user_lv]");
?>
<br>
<pre>
<a onclick=location.href='index.phps'>----- index.phps -----</a>
</body>
</html>
userlv의 쿠키값이 5를 넘을 시 solve가 실행되지만 6을 넘거나 같으면 1로 돌아가는 코드이다.
초기에 1?로 있는 쿠키값을 5<x<=6값으로 수정해주면 될 것 같다
쿠키를 수정하는 법을 몰라서 헤매다가 검색해보니 크롬 툴이 있다고 한다.
EditThisCookie라는 툴을 이용하여 쿠키를 수정해보았다.
사진처럼 user lv값이 1인것을 알 수 있다.
범위 내의 값을 입력하면 문제는 풀린다.
* echo부분에서 무엇을 출력하는지 궁금하다.
* eregi 함수에서 "[^0-9,.]"는 검색할 단어 부분이라는데 무엇을 검색하는지 궁금하다.
* $password="????"는 패스워드를 ????로 지정해준건가...?
-------------------------------------------------------------------
4)
긴 문자배열과 패스워드를 입력하는 칸이 뜬다.
이 문자배열을 해독하는 문제 같은데 끝부분의 ==는 예전에 base64?를 해독할때 썼던게 기억이 났다.
해독하니까 c4033bff94b567a190e33faa551f411caef444f2가 나왔다.
이 문자는 어떻게 해석해야될지 모르겠어서 찾아보니 40글자는 해쉬라고...?하던데 해쉬가 무엇인지부터 찾아보았더니 '임의의 길이를 가진 데이터를 고정된 길이의 데이터로 변환하는 알고리즘' 이라고 한다. 어쨌거나 sha1?로 디코딩하면 된다고 한다.
https://hashkiller.co.uk/sha1-decrypter.aspx 를 이용하여 sha1로 디코딩을 한 번 하니까 a94a8fe5ccb19ba61c4c0873d391e987982fbbd3라고 나왔는데 마찬가지로 40글자라서 한번 더 하면 나올까 싶었는데 한번 더 디코딩을 하니 패스워드가 나왔다.
* base 64로 해독한 뒤에는 거의 검색해서 풀었다.. 아직 그 다음에 해시나 sha1을 다루는 것에 대해서는 잘 모르겠다.
-------------------------------------------------------------------
6)
들어가면 뜨는 페이지. id와 pw를 준건가? 싶었다.
역시 1번문제와 같이 저 링크를 들어가면 php? 소스가 뜬다.
역시 <?, ?>안에 있는 것들(php 소스)로 문제를 푸는 것 같았다. cookie가 나오길래 이번에도 쿠키 문제 같길래 크롬 툴을 이용해서 쿠키를 보았다.
엄청나게 긴 문자열이 나온다.
위의 php를 확인해보면 맨 아랫줄에 decode_id와 pw가 admin이어야 문제가 풀리는 것 같아서 보니 윗줄에 포문으로 base64로 20번 디코딩?하는것이 있었다. 아래부터 반대로 생각하면서 admin값이어야 해결되니까 그걸 20번 인코딩해서 쿠키값에 넣었더니 문제가 풀렸다.
'ACTIVITY > WEBHACKING.KR (2017)' 카테고리의 다른 글
38/47/52 (0) | 2017.11.18 |
---|---|
24/26/42 (0) | 2017.11.05 |
10/20/54 (0) | 2017.10.16 |
14/16/12 (0) | 2017.09.25 |
Register/15/17 (0) | 2017.09.18 |