Today Mini Learned :

기록하는 습관 들이기

ACTIVITY/WEBHACKING.KR (2017)

24/26/42

얌챠 2017. 11. 5. 22:07

24)

24번 문제를 보니 ip주소가 나오고 아래에는 agent라는 것이 떴다. 아래에 뜬 주소같은것은 이번에 JFS에서 본 형식이었는데, 그걸 그냥 구글에 검색하니까 뭔가 크롬 버전? 그런것이 나왔었다. 즉, 위에는 내 ip주소고 아래는 내가 접속한 크롬의 버전정보? 비슷한 것이었다.

wrong ip라고 나오는 것을 보니 ip를 수정해야 하지 않을까 싶었다.

 

그러고 소스를 봤는데

<html>

<head>

<title>Challenge 24</title>
</head>

<body>

<table border=1><tr><td>client ip</td><td>(ip주소)</td></tr><tr><td>agent</td><td>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36</td></tr></table><p><hr><center>Wrong IP!</center><hr>






<!--



source : index.phps



-->



</body>

</html>

 

소스코드가 어디 있는지 가리키고 있어 그 주소로 들어가니 php 코드가 있었다.

<?

extract($_SERVER);
extract($_COOKIE);

if(!$REMOTE_ADDR) $REMOTE_ADDR=$_SERVER[REMOTE_ADDR];

$ip=$REMOTE_ADDR;
$agent=$HTTP_USER_AGENT;


if($_COOKIE[REMOTE_ADDR])
{
$ip=str_replace("12","",$ip);
$ip=str_replace("7.","",$ip);
$ip=str_replace("0.","",$ip);
}

echo("<table border=1><tr><td>client ip</td><td>$ip</td></tr><tr><td>agent</td><td>$agent</td></tr></table>");

if($ip=="127.0.0.1")
{
@solve();
}

else
{
echo("<p><hr><center>Wrong IP!</center><hr>");
}
?>

 

ip값이 127.0.0.1이어야 문제가 풀리는데 이걸 그냥 소스코드에 넣는다고 해결되지 않았다. 저 윗부분에 12랑 7., 0.부분을 없애는 코드도 있기는 했는데 그냥 소스를 바꾸는 것으로는 아무 일도 일어나지 않았다.

 

이전 문제를 살펴보니 이런 류의 문제는 항상 쿠키를 이용하기도 했고  위에서 쿠키가 언급되기도 했었기 때문에 이번에도 쿠키를 이용해보려고 했으나 필요한 쿠키는 없었다.

 

쿠키를 추가해야 될 것 같아 크롬의 쿠키툴로 보니 추가하는 것이 있었다. 변수 이름을 이름으로 해야 하나 싶어서 $ip로 해봤는데 안되었고 찾아 보니 위에서 그냥 넘어갔던 REMOTE_ADDR을 쿠키이름으로 해서 추가해야 되는 것 같았다.

 

이렇게 넣었는데도 창에도 아무런 변화가 없다..(나중에 보니 새로고침을 눌렀어야 했던것 같다) 문제가 안 풀리는 건 저 위에 대체하는 함수 때문에 글자들이 다 날아가 버린 것 같아서 그걸 수정하려고 보니까 12121212이런것도 그냥 한번에 없어져 버리는것 같다. 따라서 1122이런식으로 안에 넣어야 되어서 112277..00..00..1로 바꿔서 쿠키값에 넣고 새로고침하니 문제가 풀렸다.

 

 

*이런 식으로 ip를 바꾸면 아예 자체 ip가 바뀌는 건가? 아니면 이 페이지 내에서만 바뀌는지 궁금하다.

문제를 풀고나서 뒤로가기를 눌렀더니 wrong ip! 127.0.0.1이 뜨면서 아무것도 안 떠서 썼던 쿠키를 지우고 재접속했다

 

 

26)

 

26번 문제를 들어가면 index.phps로 이어지는 링크 하나만 뜬다. 소스 또한 그것밖에 없다.

 

링크를 들어가면

<html> 
<head> 
<title>Challenge 26</title> 
<style type="text/css"> 
body { background:black; color:white; font-size:10pt; }     
a { color:lightgreen; } 
</style> 
</head> 
<body> 

<? 

if(eregi("admin",$_GET[id])) { echo("<p>no!"); exit(); } 

$_GET[id]=urldecode($_GET[id]); 

if($_GET[id]=="admin") 
{ 
@solve(26,100); 
} 

?> 


<br><br> 
<a href=index.phps>index.phps</a> 
</body> 
</html> 

이런 소스가 뜨는데 가운데 <? ?>부분을 보면 저번에 봤던 eregi함수 부분이 뜬다. 역시 문제를 풀려면 _GET[id]가 admin이어야 하는데, url디코드를 하는 부분도 있고 해서 아마 디코딩해야 하지 않을까 싶었다.

 

eregi($b,$a)가 $a에서 $b를 찾는거니까 GET[id]에 admin이 있으면 답이 아니고

_GET[id]부분에 admin이라는 문자가 있으면 no를 출력하며 탈출하고 _GET[id]에 _GET[id]를 한번 디코딩한 값을 넣는데 그 다음 if문에서 _GET[id]이 admin이어야 하므로 admin을 한번 url로 인코딩한 값을 넣으면 될 것 같다.

 

인코딩하는 방법을 모르겠어서 직접 문자를 찾아서 대입해서 넣었다. 인코딩사이트마다 알파벳은 인코딩을 안해준다... 그리고 index.php?id=()()()아이디를 여기에 대입해야 한다고 해서 대입해봤는데 no가 뜨면서 안되는거보니 알아서 한번 디코딩해버리는 것 같다. 그래서 두번 인코딩해준 값을찾아 넣어서 입력했더니 풀렸다.

 

*url인코딩을 직접 했는데 인코딩해주는 사이트가 있는지 궁금하다.(찾아봤는데 안된다 ㅠㅠ)

 

 

42)

두 개의 파일을 다운받는 창이 뜬다. 첫번째 파일을 다운받기를 하면

 

창이 뜨고 두번째 파일은

 

 

 

이 뜬다.

 

이 창의 소스코드를 보면

<html>

<head>

<title>Challenge 42</title>

</head>

<body>



<table border=1 align=center width=300>

<tr><td width=50>no</td><td>subject</td><td>file</td></tr>

<tr><td>2</td><td>test</td><td>test.txt [<a href=?down=dGVzdC50eHQ=>download</a>]</tr>

<tr><td>1</td><td>read me</td><td>test.zip [<a href=javascript:alert("Access%20Denied")>download</a>]</td></tr>

</table>



<!--



test.zip password is only numbers



-->



</body>

</html>

 

뭔가 접근 거부된 파일에 있을것같은데 test.txt파일의 코드를 보면 href=?down=dGVzdC50eHQ=>download 부분이 있다. 이 부분에 무언가 힌트가 있을 것 같았다.

down옆에 문자열은 base64인코딩되어있는것같아 그걸 풀어보니 text.txt가 나왔고 혹시 이걸 zip으로 바꿔서 풀면 되지 않을 까 싶었는데 진짜 다운받아졌다.

그런데 여기에 암호가 걸려있었다. 암호는 숫자라는데 다른 힌트가 없었다.

뭐지 싶어서 찾아보니 brute force문제라고 한다. AZPR프로그램을 사용하여 숫자만대입해봤더니 

 

 

 

비밀번호가 뜨고 풀렸다. 텍스트에 있는 주소를 주소에 넣으니 pw가 떴고 이것을 auth에 넣으니 문제가 풀렸다.

'ACTIVITY > WEBHACKING.KR (2017)' 카테고리의 다른 글

25/23/11  (0) 2017.11.24
38/47/52  (0) 2017.11.18
1/4/6  (0) 2017.10.23
10/20/54  (0) 2017.10.16
14/16/12  (0) 2017.09.25