아래 thinkphp 프레임워크 튜토리얼 칼럼에서는 ThinkPHP 프레임워크의 감사(공유)에 대해 1분만에 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
ThinkPHP 소개
ThinkPHP 는 2006년 초에 설립되어 Apache2 오픈 소스로 출시된 빠르고 간단한 객체 지향 경량 PHP 개발 프레임워크입니다. 이는 민첩한 WEB 애플리케이션 개발과 단순화된 엔터프라이즈 애플리케이션 개발을 위해 탄생했습니다. ThinkPHP는 탄생부터 단순하고 실용적인 디자인 원칙을 고수해 왔으며 뛰어난 성능과 최소한의 코드를 유지하면서도 사용 편의성에도 중점을 두었습니다. 커뮤니티 팀의 적극적인 참여로 사용 편의성, 확장성 및 성능 측면에서 지속적으로 최적화되고 개선되었으며, 중국에서 가장 선도적이고 영향력 있는 웹 애플리케이션 개발 프레임워크로 성장했습니다. , 많은 일반적인 사례가 있어 상업용 및 포털 수준 개발에 안정적으로 사용할 수 있습니다.
취약점에 대한 간략한 설명
ThinkPHP 5.0.x 프레임워크는 매개변수화된 쿼리 방법을 사용하여 데이터베이스를 작동하지만 삽입 및 업데이트 방법에서 전달된 매개변수는 제어 가능하며 엄격하지 않습니다. 필터링 결국 이 SQL 주입 취약점이 발생했습니다.
분석을 위해 ThinkPHP 프레임워크 5.0.x SQL 주입 취약점 사용
thinkphp공식 웹사이트 다운로드 버전 5.0.15: http://www.thinkphp.cn/down/1125. HTML . 데이터베이스를 설정합니다. 데이터베이스는 tp이고 테이블 이름은 user이며 id와 username이라는 두 개의 필드가 있습니다.
데이터베이스 구성 정보 application/database.php를 수정하고, application/config.php에서 디버깅 및 추적을 활성화합니다.
application/index/controller/Index.php의 Index 클래스에 메서드를 추가합니다.
public function testsql() { $username = input('get.username/a'); db('user')->where(['id'=> 1])->insert(['username'=>$username]); }
은 다음과 같이 설명됩니다.
http: //127.0.0.1/thinkphp/ public/ index.php/ index/ index/ index 도메인 이름 웹사이트 디렉터리 외부 액세스 디렉터리 항목 파일 프런트 데스크 컨트롤러 메서드 이름
확장자:
updatexml 함수에 대해 UPDATEXML(XML_document, :XPath_string(Xpath 형식의 문자열). Xpath 구문을 이해하지 못하는 경우 인터넷에서 자습서를 찾을 수 있습니다.
세 번째 매개변수: new_value, 문자열 형식, 발견된 정규화된 데이터를 대체합니다 作用:改变文档中符合条件的节点的值 访问payload,就可以触发漏洞了。 漏洞分析 首先,我们知道 insert 方法存在漏洞,那就查看 insert 方法的具体实现。 通过input获取到参数后,username变量情况如下: 跟入insert,thinkphp/library/think/db/Query.php 然后执行insert语句 跟入 thinkphp/library/think/db/Builder.php 跟入parseData至 thinkphp/library/think/db/Builder.php 可以看出$val是数组,且根据$val[0]值为inc,会通过switch语句进入到’inc’: 此处的parseKey,即thinkphp/library/think/db/builder/Mysql.php 此处并未对传入的$key进行更多的过滤与检查,将其与前面经过parseKey的结果进行拼接后返回给result 至此注入成功。 漏洞修复 https://github.com/top-think/framework/commit/363fd4d90312f2cfa427535b7ea01a097ca8db1b 在进行dec和inc操作之前对$val[1]的值进行了再次确认。 总结 第一次审计Thinkphp框架 ,结合Thinkphp5.0手册以及网上教程完成此次漏洞的审计。 相关推荐:最新的10个thinkphp视频教程$sql = $this->builder->insert($data, $options, $replace);
위 내용은 1분 만에 ThinkPHP 프레임워크 감사에 대해 알아보세요(공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 ThinkPhp의 내장 테스트 프레임 워크에 대해 논의하여 장치 및 통합 테스트와 같은 주요 기능과 조기 버그 감지 및 개선 된 코드 품질을 통해 응용 프로그램 신뢰성을 향상시키는 방법을 강조합니다.

기사는 실시간 주식 시장 데이터 피드에 ThinkPHP를 사용하여 설정, 데이터 정확도, 최적화 및 보안 측정에 중점을 둡니다.

이 기사는 서버리스 아키텍처에서 ThinkPHP를 사용하기위한 주요 고려 사항에 대해 설명하고 성능 최적화, 무국적 설계 및 보안에 중점을 둡니다. 비용 효율성 및 확장 성과 같은 혜택을 강조하고 도전 과제를 해결합니다.

이 기사에서는 ThinkPHP 마이크로 서비스에서 서비스 검색 및로드 밸런싱 구현, 설정, 모범 사례, 통합 방법 및 권장 도구에 중점을 둡니다. [159 문자]

ThinkPhp의 IOC 컨테이너는 PHP apps.character 수 : 159의 효율적인 종속성 관리를위한 게으른 하중, 맥락 바인딩 및 메소드 주입과 같은 고급 기능을 제공합니다.

이 기사는 ThinkPhp를 사용하여 실시간 협업 도구를 구축하고 설정, WebSocket 통합 및 보안 모범 사례에 중점을 둡니다.

ThinkPhp는 가벼운 디자인, MVC 아키텍처 및 확장 성을 통해 SaaS 앱에 혜택을줍니다. 다양한 기능을 통해 확장 성을 향상시키고 개발 속도를 높이며 보안을 향상시킵니다.

이 기사는 설치, 구성, 작업 관리 및 확장성에 중점을 둔 ThinkPhp 및 RabbitMQ를 사용하여 분산 작업 큐 시스템을 구축합니다. 주요 문제는 고 가용성 보장, 손상과 같은 일반적인 함정을 피하는 것입니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

WebStorm Mac 버전
유용한 JavaScript 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
