>  기사  >  백엔드 개발  >  PHP 취약점 - 크로스 사이트 요청 위조에 대한 완전한 설명

PHP 취약점 - 크로스 사이트 요청 위조에 대한 완전한 설명

PHP中文网
PHP中文网원래의
2016-11-03 18:04:311466검색

요약: 이 기사에서는 주로 PHP 웹사이트에 대한 교차 사이트 요청 위조를 소개합니다. 모든 CSRF 공격 방법 중에서 공격자는 다른 사용자가 시작한 것처럼 보이는 HTTP 요청을 위조합니다. 실제로는 사용자가 보낸 HTTP 요청을 추적하는 것이 공격자의 목적입니다. ...

재인쇄할 출처를 명시해 주세요: PHP 취약점에 대한 전체 설명(6)-Cross Site Request Forgeries
교차 사이트 요청 위조를 의미하는 CSRF(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 사용자 확인 권한은 해당 권한이 있는 경우에만 사용됩니다. 관리자는 메시지를 삭제할 수 있습니다
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=”id=”.$id가 있는 책에서 삭제 //Pass 삭제할 메시지 ID
mysql_query ($sql);
}
mysql_close($conn);
echo “”;
echo “alert('삭제 성공!');” ;
echo ” location='book .php';";
echo "";
?>
관리자 권한이 있고 http://localhost/manage/delbook.php를 제출하는 경우 ?id=2이면 아이디가 삭제됩니다. 메시지 2
활용방법 :
일반 사용자 메시지(소스코드 방식)를 사용하며, 내용은
“delbook.php?id=2” />
“delbook.php?id =3" />
"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 "";
}
이 파일은 관리 비밀번호 및 웹사이트 설정에 대한 일부 정보를 수정하는 데 사용됩니다. 다음 형식을 직접 구성할 수 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:if 조건문 사용다음 기사:if 조건문 사용