[WhiteHat Grand Prix 06-Quals] Session관련 문제
두비니
·2020. 1. 5. 23:50
사실 그냥 과외들으면서 한거라 정확히 무슨문제인지 모른다!
LFI가 터진다는걸 알 수 있다.
보아하니 그냥 있을 수 밖에 없는 페이지를 연 것 같다. 그래서 게싱으로 passwd파일을 열어보았다.
이제 session에 대해서 알아보도록 하자.
보통의 웹사이트라면 start_session() 함수가 포함되어 있을 것이다.
그 안에 $res[id]가 존재할 것이고, 그 id에 대한 정보는
$_SESSION['id']=$res['id'];
id = (내가 입력한 id값)
처럼 입력이 될 것이다.
그럼 id에 <?php system($_GET[cmd]); ?>를 입력하게 되면 어떻게 될까?
/var/lib/php/sessions/sess_(쿠키값)의 디렉토리에
Id|s:n:"<?php system($_GET[cmd]); ?>
가 들어가게 되는거고,각각 변수의 뜻은
s : datatype(string)
n : # of data
"" : 내용
다음과 같이 회원가입을 해줍시다.(pw는 123456했어요)
그렇다면 나의 현재 쿠키값에 해당하는 디렉토리에 나의 id정보가 들어가있을 것입니다.
해당 쿠키값으로 들어가니
이렇게 뜨네요.
보면 username이 28자리 있는데 아무것도 입력되지 않은 것을 보아 id였던 <?php system($_GET[cmd]); ?>가 명령어로 인식된 것을 알 수 있습니다.
근데 여기서 아무것도 출력이 안 된 것은 cmd에 아무 값도 입력되지 않아서 그런 거겠죠?
따라서 cmd에 값을 입력해봅시다.
딱봐도 flag 파일이 있네요!!!
따라서 flag파일을 열어보았더니 플래그를 얻을 수 있었습니다.
전형적인 LFI 문제였고, session에대해서 이해를 하고 있어야 할 수 있는 문제여서 어려웠다고 한다.
나도 푸는데 너무 어려웠다.ㅎ
그래도 열심히 하자!
'CTF' 카테고리의 다른 글
[DawgCTF 2021] :pwn: No Step On Snek Write-Up (0) | 2021.05.14 |
---|---|
[DawgCTF 2021] Write-Up :Misc: (0) | 2021.05.11 |
[CodeFest 2021] :pwn: Write-Up (0) | 2021.03.20 |
[PoseidonCTF 2020] misc write-up (0) | 2020.08.10 |
[castorsCTF2020] ::pwnable:: abcbof풀이 (0) | 2020.06.01 |