본문 바로가기

IT/웹 해킹(Web Hacking)

webhacking.kr [문제1번]






회원 가입을 완료하였으므로 


이제 본격적으로 문제 풀이에 나서보겠다.





네비게이션 바에 있는 항목 Challenges - Auth를 클릭한다.


Challenge를 클릭하면


그렇다면 해당 문제들의 항목과 배점을 확인할 수 있다.



문제 1번을 눌러보자.




위와 같은 홈페이지를 확인할 수 있다.


그리고 index.phps에 마우스를 가져다놓으니 커서가 활성화 되는것을 확인하였다.


이제 해당 웹문서를 열어보자.





다음과 같은 소스코드를 확인할 수 있다.


해당 소스코드를 분석해보자.


<?
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>




자바 스크립트 부분만 살펴보자.



<?
if(!$_COOKIE[user_lv])
{
    SetCookie("user_lv","1");
    echo(
"<meta http-equiv=refresh content=0>");
}
?>


user_lv이란 쿠키가 존재하지 않으면 

user_lv이란 쿠키 변수에 1을 할당한다



<?

$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]");

?>



jquery 객체인 password 변수를 할당한다. (문제풀이 크게 의미없음)


만약 첫문자가 0~9가 아니면, userlv이라는 쿠키에 1을 설정한다.


만약 쿠키(user_lv)이 6이상이면 해당 쿠키를 1로 설정한다.


만약 쿠키(user_lv)이 5 초과이면 @solve()함수를 실행한다.



그리고 해당 쿠키의 값을 보여준다.



그렇다면 solve()라는 함수가 의심스럽다.



해당 쿠키를 변조하여 solve()를 실행시키기 앞서서


크롬 개발자 도구를 이용하여 해당 쿠키의 값을 확인해보자.





해당 쿠키의 값이 1이라는 것이 확인되었다.


실제로 쿠키변조를 하기위해서 크롬 플러그인 EditThisCookie를 이용하여 변조할 수 있다.



EditThisCookie 다운로드



실제로 쿠키를 변조해보자.






쿠키가 정상적으로 변조되었음을 확인할 수 있다.


그렇다면


solve()함수를 실행시키기 위해서는


5초과 6미만이여야 한다.


user_lv쿠키의 값을 5.5로 변조하여 보자.








변조시 다음과 같은 메세지를 확인할 수 있다.





정상적으로 문제를 클리어하였다.











'IT > 웹 해킹(Web Hacking)' 카테고리의 다른 글

webhacking.kr [문제 6번]  (0) 2018.02.24
webhacking.kr [문제 5번]  (0) 2018.02.23
webhacking.kr [문제 4번]  (0) 2018.02.23
webhacking.kr [문제 2번]  (5) 2018.01.28
webhacking.kr [회원가입]  (0) 2018.01.27