기본적으로 나는 PHP 취약점을 시뮬레이트하여 PHP 취약점을 방지하는 방법을 사람들에게 보여주기 위해 사이트를 만들고 싶습니다. 그러나, 나는 그들 자신을 일하게 할 수 없다.간단한 PHP 취약점 테스트
가변 변수가 유효한 페이지인지 확인하고 (테스트 용으로 2 개만 있음)보고 싶으면 해당 페이지를로드합니다. 그렇지 않으면 "../"이 포함되어 있는지 확인합니다. 이들 중 어느 것도 사실이 아니라면 단순히 "페이지를 찾을 수 없음"이라고 말합니다. 이것은 지금까지 내 코드입니다
: "페이지를 찾을 수 없습니다"나는 말한다 page=LOLone.php
(또는 LOLtwo.php
또는 ../
)를 사용하려고 할 때마다
<?php
if($page=="LOLone.php" || $page=="LOLtwo.php"){
echo "Welcome, look at the LOL cats!";
include($page);
}else if(strlen(strstr($page,"../"))>0){
echo "Congrats, you found the transversal attack vulnerability!";
}else{
echo "Page not found!";
}
?>
내가하는 방식으로 변수를 비교할 수 없습니까? 아니면 내 웹 호스트가 안전하게 재생할 수 있습니까? 나는 조금 혼란 스럽지만 나는 PHP에 비교적 익숙하지 않아서 뭔가 간단한 것을 놓치고있는 것처럼 느껴진다. ...
좋아, 나는 실수를했다. 매우 큰 것도. 죄송합니다. 모든 답장을 보내 주셔서 감사 드리며 자체 서버가 해킹당하는 것에 대해 매우주의해야합니다. 이 예제에서는 지정된 값과 동일한 경우에만 페이지를 포함시키기 때문에 깨끗하게 처리해야합니다. 다시 한번 감사드립니다.
PHP가 JS와 같이 'else if' 또는'elseif'에 대해 엄격한 지 기억하지 않습니다. – Blake
다른 사람을 가르치려고 새, 당신이 자신을 할 수없는 경우 기본. –
감사합니다. : P 악용하는 방법을 이해합니다. 직접 해본 적이 없습니다. – Vreality