>  기사  >  백엔드 개발  >  CTF의 일반적인 PHP 취약점 소개(그래픽 요약)

CTF의 일반적인 PHP 취약점 소개(그래픽 요약)

不言
不言앞으로
2019-02-18 14:20:386298검색

이 기사는 CTF의 일반적인 PHP 취약점에 대해 소개합니다(그림 및 텍스트 요약). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

보통 이런 질문을 많이 접하는데, 기억력이 나쁘면 잊어버리기 쉬우니, 기억력이 깊어질 수 있도록 꼼꼼히 정리해볼게요! ! !

一. md5() 취약점, PHP가 해시 문자열을 처리할 때 "!=" 또는 "=="를 사용하여 해시 값을 비교하고 각각 "0E"로 시작합니다. 해시 값 ​​모두 0으로 해석되므로 해싱 후 서로 다른 두 비밀번호의 해시 값이 "0E"로 시작하면 PHP는 두 비밀번호가 동일하다고 간주하여 둘 다 0입니다.

다음은 md5 처리 후 0e로 시작하는 몇 가지 예입니다.
s878926199a
0e545993274517709034328855841020
s155964671a
0e34276841682245152497411 72 54469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
실험을 해보자:
CTF의 일반적인 PHP 취약점 소개(그래픽 요약)
결과. . . 예상했던대로

CTF의 일반적인 PHP 취약점 소개(그래픽 요약)

따라서 md5로 암호화된 문자열을 제어할 수 있는 경우(즉, 입력을 제어할 수 있는 경우) 취약점이 발생할 수 있습니다! ! !

물론, 더 흥미로운 점은 md5가 배열을 처리할 수 없다는 것입니다. 다음도 실험입니다.

CTF의 일반적인 PHP 취약점 소개(그래픽 요약)
두 개의 서로 다른 배열을 전달합니다.

CTF의 일반적인 PHP 취약점 소개(그래픽 요약)

경고가 있더라도 여전히 우회할 수 있다는 것을 알 수 있습니다(경고를 표시하고 싶지 않은 경우 앞에 @ 기호를 추가하세요):
CTF의 일반적인 PHP 취약점 소개(그래픽 요약)
하지만 배열을 처리할 때 무엇이 ​​반환될지 모르므로 시도해 보세요.
CTF의 일반적인 PHP 취약점 소개(그래픽 요약)

var_dump():

CTF의 일반적인 PHP 취약점 소개(그래픽 요약)

은 비어 있습니다! ! ! 배열을 처리할 때 NULL 값이 반환된다는 점에 유의하세요.

md5(str)==0을 우회하는 방법은 여러 가지가 있습니다. 요약하자면:

  1. 0 또는 0e로 시작하면

  2. 배열

  3. 을 우회합니다. 예, 예를 들어 "c9f0f895fb98ab9159f51fd0297e236d"==0이 설정되었습니다! ! ! , 문자열을 정수로 변환하는 데 사용됩니다! ! ! , 처음에 숫자가 없으면 0으로만 변환 가능! !

II. strcmp() 함수 취약점,
strcmp() 함수는 두 문자열을 비교하는 데 사용됩니다.
strcmp (string$ str1, string$ str2)
parameter str1 first string.str2 first 두 문자열. str1이 str2보다 작으면 둘이 같으면 0을 반환합니다. 이 함수 매개변수(객체, 배열 등)에 잘못된 매개변수가 있으면 오류가 보고되고 0이 반환됩니다! ! ! (이 취약점은 5.3 이전의 PHP에 적용됩니다. 이 컴퓨터에서 시도했지만 수행할 수 없음을 발견했습니다. 무슨 일이 일어났는지 모르겠습니다.)
다음은 BUGKU 코드로 감사된 질문의 예입니다.


그림과 같이 strcmp 취약점에 따라 배열을 전달해 보세요.
CTF의 일반적인 PHP 취약점 소개(그래픽 요약)

배열을 전달하면 strcmp 오류가 발생하고 반환되므로 우회됩니다! ! ! CTF의 일반적인 PHP 취약점 소개(그래픽 요약)strcmp()와 동일한 또 다른 함수 strcasecmp()가 있습니다. strcmp()는 대소문자를 구분하지만 strcasecmp()는 모두 동일한 방식으로 우회할 수 있습니다.


위 내용은 CTF의 일반적인 PHP 취약점 소개(그래픽 요약)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제