[취약점][PHP] $_SERVER['PHP_SELF'] 취약점
※ 본 게시글은 휴먼급식체로 작성되었습니다. 작성자가 중3이거등옄ㅋㅋㅋㅋㅋㅋ
안녕하세여 지금 완전 흥분 상태임. 제가 취약점을 발견했거등여ㅋㅋㅋㅋㅋㅋ
근데 콜롬버스처럼 이미 발견된 거 발견한거임ㅋㅋㅋㅋㅋㅋㅋ 안습.
어째뜬
PHP에 $_SERVER 변수가 있는데 일단 설명하기 귀찮아서 링크 걸어둠
http://unabated.tistory.com/entry/PHP-SERVER-%ED%95%A8%EC%88%98
위에 링크해둔 블로그에 $_SERVER['PHP_SELF'] 설명에 이렇게 써있음 ㅇㅅㅇ
$_SERVER['PHP_SELF'] = 현재페이지의 주소에서 도메인과 넘겨지는 값 제외 = index.php
솔까(솔직히 까고 말해서) 나도 이해안돼서 그냥 해봤음. 그 때는 취약점이 있을지 생각도 못함. 근데 사이트 만들다 우연히 발견함 헤헤
일단 PHP_SELF는 이런 내용을 출력한다라는 것을 알기 위해 이런 웹페이지를 만들어 봤음
언듯 보기에는 취약점 없이 잘 작동할 것 같아보였음 ㅇㅅㅇ
일단 테스팅하는 데 쓰였던 최종 코드임. 좀 고쳤음.
ㅂ..블로..그에 ...ㅂ..보옂..주려고...흥! ㄷ..딱..히 이글을 읽고 있는 너에게 준비된 건 ㅇ..아니라구!
이건 내가 사이트 만들고 있을 때 할 짓 없어서 리눅스 쓸 때 습관적으로 썼던 슬래쉬를 붙이고 응가를 썼는데 이게 떠서 직감적으로 취약점이 있겠구나 싶었음.
PHP_SELF에는 파라미터가 들어가지 않음. 테스트 해봤는데 안되더라구여. 아무래도 파라미터는 좀 위험하니까 그런거 아닌가 싶어여
내가 이 취약점을 발견한 코드가 html의 form 코드이기 때문에 form에 다시 넣어서 이런 값을 넣어줬음.
그랬더니 앞에
" > ..
이상한게 뜨네? 갓크롬찡이 XSS를 막아줌ㅋ 그럼 IE로 해볼까
같은 URL로 인터넷 익스플로러를 사용해봤음. 그런데 공격 성공임 정ㅋ벅ㅋ
근데 왜 이런 결과가 나왔는지 생각해보기로 함
원래 html 태그에는
<form method="get" action="/php/vuln.php"> 가 생성되어야하는데
이 PHP_SELF라는 녀석이 슬래쉬(/)를 URL의 일부라고 생각하기 때문에 그 뒷녀석도 같이 URL로 저장되나봄.
그럼 아까와 같은 코드를 삽입했을 때는
원래 코드와는 다른
<form method="get" action="/php/vuln.php/"><script>alert('xss');</script> ">
위 코드가 실행되는 데, 코드를 정리해보자면
<form method="get" action="/php/vuln.php/">
<script>alert('xss');</script>
">
(바탕색 칠 한 부분이 출력된거)
이렇게 해서 뚫리는 거지여 (PHP가 서버 딴에서 실행되서 HTML로 바뀌고 HTML은 브라우져(사용자)에서 해석되니까 어떻게 보면 당연한듯)
그럼 XSS공격이 실행되는 거 ㅇㅋ?
대충 구글링 해보니까 PHP_SELF에서 취약점이 발견돼서 이렇게 쓰라고 돼있음.
<form method="get" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>>
그럼 20000
이렁거 처음 써봐서 잘 못썼어여..ㅜ ㄷ..다음부턴 더 여..열심히..
'Hacking > Web.' 카테고리의 다른 글
SQL Injection bypassing (0) | 2016.11.12 |
---|---|
MySQL에서의 SQL Injection시 유용한 주석 리스트 (0) | 2016.11.07 |
[LoS] Orc 풀이 (1) | 2016.10.30 |
[SQL injection][PHP] magic_qutoes_gpc 우회 (0) | 2016.09.10 |
[wargame.kr] md5 password (0) | 2016.09.08 |