'Write up/Wargame'에 해당되는 글 30건

반응형

암호화기초부분인 100점짜리 문제입니다.


user라는 쿠키값의 존재여부를 묻고

그 안의 값이 각각 base64로 20번 인코딩 되네요.

그리고 1은 !로 2도 @로 치환이 되었으니 각각 해당되는 값들을 치환시키신게


user,password라는 쿠키값에 넣어지게 되었고,


디코드 되는 부분은 인코딩 부분과 과정을 반대로 해주시면 되구요.


근데 여기서 디코드된 아이디와 비밀번호가 각각 admin일때 문제가 풀리니


admin을 base64로 인코딩을 20번해주시고 치환시킬껀 시키신다음에

password에도 똑같은 값을 넣어주시면 성공!

(노가다 성이 짙은 문제..ㅠㅠ)

'Write up > Wargame' 카테고리의 다른 글

[Webhacking.kr]8번 문제  (0) 2014.10.30
[Webhacking.kr]7번 문제  (0) 2014.10.05
[Webhacking,kr]5번 풀이  (0) 2014.10.05
[Webhacking.kr]4번 풀이  (0) 2014.10.04
[Webhacking.kr]3번 풀이  (0) 2014.10.04
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

300점짜리 문제입니다.



첫페이지는 이렇게 뜹니다. 왠지 어드민으로 로그인 해야할것 같은 기분이 드네요.ㅋㅋㅋ

먼저 로그인버튼을 클릭하게 되면


다음과 같은 창으로 넘어가게 되는데, 웹페이지의 소스를 보겠습니다.

현재페이지에 POST방식으로 값이 전달되네요.

일단 여기까지 login.php 입니다.


혹시나싶어 url에서 login.php를 지워봤더니


아래와 같이 파일들이 그대로 드러나게 됩니다.

join.php라는 파일에 들어가서 소스를 보고 간단하게 정리해봤습니다.


=============================login.php=================================

l='a';

ll='b';

lll='c';

llll='d';

lllll='e';

llllll='f';

lllllll='g';

llllllll='h';

lllllllll='i';

llllllllll='j';

lllllllllll='k';

llllllllllll='l';

lllllllllllll='m';

llllllllllllll='n';

lllllllllllllll='o';

llllllllllllllll='p';

lllllllllllllllll='q';

llllllllllllllllll='r';

lllllllllllllllllll='s';

llllllllllllllllllll='t';

lllllllllllllllllllll='u';

llllllllllllllllllllll='v';

lllllllllllllllllllllll='w';

llllllllllllllllllllllll='x';

lllllllllllllllllllllllll='y';

llllllllllllllllllllllllll='z';

I='1';

II='2';

III='3';

IIII='4';

IIIII='5';

IIIIII='6';

IIIIIII='7';

IIIIIIII='8';

IIIIIIIII='9';

IIIIIIIIII='0';

li='.';

ii='<';

iii='>';

lIllIllIllIllIllIllIllIllIllIl=lllllllllllllll+llllllllllll+llll+llllllllllllllllllllllllll+lllllllllllllll+lllllllllllll+ll+lllllllll+lllll; //oldzombie

lIIIIIIIIIIIIIIIIIIl=llll+lllllllllllllll+lll+lllllllllllllllllllll+lllllllllllll+lllll+llllllllllllll+llllllllllllllllllll+li+lll+lllllllllllllll+lllllllllllllll+lllllllllll+lllllllll+lllll; //document.cookie


if(eval(lIIIIIIIIIIIIIIIIIIl).indexOf(lIllIllIllIllIllIllIllIllIllIl)==-1) { bye; } //oldzombie쿠키 여부


if(eval(llll+lllllllllllllll+lll+lllllllllllllllllllll+lllllllllllll+lllll+llllllllllllll+llllllllllllllllllll+li+'U'+'R'+'L').indexOf(lllllllllllll+lllllllllllllll+llll+lllll+'='+I)==-1) //document.url에서 mode=1 인지 확인

=======================================================================

이렇게 되는데요. 잘보시면 oldzombie라는 쿠키값의 존재 여부를 묻고 있고 url에 인자값으로 mode를 받고있는 것을 알 수 있네요. 해당하는 값들을 전부 적용한다음

아래와 같은 페이지로 되는데,


id란에 최대 길이가 5이상이 될수 없다고 소스에 적혀있습니다.

여기까지 보았을때 sql insert에러가 생각나게 되는데요.

id varchar(5) 이렇게 되어있다면 만약 6글자를 넣었을 떄

5글자만 들어가게 되는 것입니다. 그렇다면 현재페이지에서 id의 maxlength를 수정하고 admin 로 값을 보내고 login.php에서 admin으로 로그인하시면 성공!

'Write up > Wargame' 카테고리의 다른 글

[Webhacking.kr]7번 문제  (0) 2014.10.05
[Webhacking.kr]6번 풀이  (0) 2014.10.05
[Webhacking.kr]4번 풀이  (0) 2014.10.04
[Webhacking.kr]3번 풀이  (0) 2014.10.04
[Webhacking.kr]2번 풀이  (0) 2014.10.04
블로그 이미지

KuroNeko_

KuroNeko

,
반응형


사이트에 접속하면 이런 창이 뜨는데 Base64로 암호화 되어있습니다.


Base64를 디코딩 시켜서 Password에 넣으면 성공!

'Write up > Wargame' 카테고리의 다른 글

[Webhacking.kr]6번 풀이  (0) 2014.10.05
[Webhacking,kr]5번 풀이  (0) 2014.10.05
[Webhacking.kr]3번 풀이  (0) 2014.10.04
[Webhacking.kr]2번 풀이  (0) 2014.10.04
[Webhacking,kr]1번 풀이  (0) 2014.10.04
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

간단한 SQL Injection 문제입니다.


일단 이 문제는 먼저 퍼즐을 푸셔야합니다.

퍼즐을 푸셨다는 가정하에 진행하겠습니다.



이런 입력창이 뜹니다. 저 name값에 인젝션을 해도 문제의 해답이 나오지 않았습니다.

그렇다면 burp suite를 사용해 중간에서 값을 보도록 하겠습니다.



answer이란 값이 보이네요. 한번 쿼리구문을 예상해보면

select * from 테이블 where answer=값

이런 식인 것 같습니다. 그렇다면

정답을 가져오기 위해선 항상 answer값을 true로 만들어야 겠죠.

그러면 answer에 추가할 값은

||1 이 됩니다.

정답이 나오니 Auth에 넣으면 성공!

'Write up > Wargame' 카테고리의 다른 글

[Webhacking.kr]6번 풀이  (0) 2014.10.05
[Webhacking,kr]5번 풀이  (0) 2014.10.05
[Webhacking.kr]4번 풀이  (0) 2014.10.04
[Webhacking.kr]2번 풀이  (0) 2014.10.04
[Webhacking,kr]1번 풀이  (0) 2014.10.04
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

먼저 2번문제에 들어가면 이런 웹사이트가 뜹니다.


보다시피 time이라는 쿠키값을 생성하고 있고, 웹사이트의 소스를 보아하니


수상한 구간이 보입니다. <!-- 현재시간 --> 이런식으로 보이는데 time이라는 쿠키값을 이용해서 출력하는 것 같아보이네요.


그렇다면 저 time이라는 쿠키값을 변경해서 Blind Sql Injection으로 True,False를 해준다면

각각 <!--2070-01-01 09:00:01--> (True),<!--2070-01-01 09:00:00--> (False)

이렇게 뜰겁니다. 그렇다면 여기서 테이블 이름과 컬럼의 이름, 그리고 데이터 값을 얻어 올 수 있겠네요.

일단 여기까지의 정보를 가지고 저 페이지의 소스를 자세히 보아하니 admin이라는 사이트가 존재하는 것을 알 수 있습니다. 한번 들어가보면 


이런 사이트가 뜨는데 여기서는 아무런 값을 얻을 수 없습니다. 일단 사이트를 전부 돌아다녀 보면 FreeB0aRd라는 게시판이 보이는데, 게시글을 읽어보려니 비밀번호가 걸려있습니다.


자 그럼 테이블 이름을 알 수 없으니 추리(?)해서 값을 비교해 보도록 하겠습니다.


테이블 이름중 한개는 FreeB0aRd 였습니다. 그리고 컬럼중 한개는 password 였습니다.

그렇다면 Blind Sql Injection 을 해보겠습니다.


시간 and if((select ascii(substr(password,1,1)) from FreeB0aRd)=값 ,true,false)


를 자동화시켜 패스워드를 얻은 다음 위의 게시글을 읽을 수 있게됩니다.

읽게되면 admin manual이란 파일을 받을 수 있는데 비밀번호가 걸려있습니다.


그렇다면 admin페이지를 인젝션을 해보면 값이 있을 수도 있겠죠.

혹시나 싶어서 테이블이름을 admin으로 하였더니 인젝션이 되네요. 그렇다면 어드민 페이지의 패스워드를 얻을 수 있습니다.


그럼 admin_manual의 패스워드를 알려주는데,

그 패스워드를 사용해 알집을 풀면 Auth 코드가 나옵니다. 그걸 Auth에 넣으면 성공!

'Write up > Wargame' 카테고리의 다른 글

[Webhacking.kr]6번 풀이  (0) 2014.10.05
[Webhacking,kr]5번 풀이  (0) 2014.10.05
[Webhacking.kr]4번 풀이  (0) 2014.10.04
[Webhacking.kr]3번 풀이  (0) 2014.10.04
[Webhacking,kr]1번 풀이  (0) 2014.10.04
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

쿠키값을 변경하는 아주 간단한 문제입니다.


index.phps(소스보기)를 제공하고 있구요.


해당 핵심이 되는 코드들은 아래와 같습니다.


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

<?

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

?>


user_lv이란 쿠키를 생성하고 if문으로 user_lv의 값을 비교 하고 있네요

비교하고 있는 범위 값이


5<user_lv<=6 이므로 user_lv에 5와 6사이의 값을 넣어주면 성공입니다.

'Write up > Wargame' 카테고리의 다른 글

[Webhacking.kr]6번 풀이  (0) 2014.10.05
[Webhacking,kr]5번 풀이  (0) 2014.10.05
[Webhacking.kr]4번 풀이  (0) 2014.10.04
[Webhacking.kr]3번 풀이  (0) 2014.10.04
[Webhacking.kr]2번 풀이  (0) 2014.10.04
블로그 이미지

KuroNeko_

KuroNeko

,