old-24_풀이
2021. 6. 6. 16:32ㆍ문제연습/webhacking.kr
반응형
본 티스토리 블로그는 PC 환경에 최적화되어 있습니다.
모바일 유저분들은 아래 네이버 블로그를 이용해 주세요.
Webhacking.kr
old-24번 문제풀이
이번 문제는 취약한 인증과 쿠키에 대한 지식을 묻고 있습니다.
잘못된 검증 로직으로 인한 취약점을 다룬 문제이니 꼭 한번 풀어보시는 것을 추천드립니다.
1. 접속 화면
접속 컴퓨터의 ip 정보와 접속 환경 정보가 화면에 출력됨을 알 수 있습니다.
- 소스코드 -
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?>
<html>
<head>
<title>Challenge 24</title>
</head>
<body>
<p>
<?php
extract($_SERVER);
extract($_COOKIE);
$ip = $REMOTE_ADDR;
$agent = $HTTP_USER_AGENT;
if($REMOTE_ADDR){
$ip = htmlspecialchars($REMOTE_ADDR);
$ip = str_replace("..",".",$ip);
$ip = str_replace("12","",$ip);
$ip = str_replace("7.","",$ip);
$ip = str_replace("0.","",$ip);
}
if($HTTP_USER_AGENT){
$agent=htmlspecialchars($HTTP_USER_AGENT);
}
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(24);
exit();
}
else{
echo "<hr><center>Wrong IP!</center>";
}
?><hr>
<a href=?view_source=1>view-source</a>
</body>
</html>
- php 코드 부분 -
<?php
extract($_SERVER);
extract($_COOKIE);
$ip = $REMOTE_ADDR;
$agent = $HTTP_USER_AGENT;
if($REMOTE_ADDR){
$ip = htmlspecialchars($REMOTE_ADDR);
$ip = str_replace("..",".",$ip);
$ip = str_replace("12","",$ip);
$ip = str_replace("7.","",$ip);
$ip = str_replace("0.","",$ip);
}
if($HTTP_USER_AGENT){
$agent=htmlspecialchars($HTTP_USER_AGENT);
}
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(24);
exit();
}
else{
echo "<hr><center>Wrong IP!</center>";
}
?>
코드 내용을 요약하자면, ip 필터를 거친 후 접속 ip를 127.0.0.1로 인식하게 하면 문제 풀리게 됩니다.
- burp suite - http request -
역시 눈에 띄는 정보는 쿠키가 전부인 듯합니다.
일단 코드를 조금 더 자세히 알아봐야겠습니다.
extract($_SERVER);
extract($_COOKIE);
$ip = $REMOTE_ADDR;
$agent = $HTTP_USER_AGENT;
if($REMOTE_ADDR){
$ip = htmlspecialchars($REMOTE_ADDR);
$ip = str_replace("..",".",$ip);
$ip = str_replace("12","",$ip);
$ip = str_replace("7.","",$ip);
$ip = str_replace("0.","",$ip);
}
-> 여기서 우리가 주목해야 할 곳은 바로 extract 부분입니다.
extrack의 정보는 아래 링크를 이용해 주시길 바랍니다.
2. Solution
extrack 함수를 이용해 ip 값을 조작하여 필터를 우회하는 방법을 설명드리겠습니다.
쿠키 이름을 REMOTE_ADDR로 넣어 주고 필터를 우회하기 위해 다음 값을 넣어 줍니다.
112270...00...00...1
이렇게 쿠키 값을 조작하면 필터 우회되어 원하는 결과가 나온 모습입니다.
Clear!!!
반응형