兔子的技术博客

兔子

   :: 首页 :: 联系 :: 聚合  :: 管理
  202 Posts :: 0 Stories :: 43 Comments :: 0 Trackbacks

留言簿(10)

最新评论

阅读排行榜

评论排行榜

声明:原创文章,转载请指名来自华夏联盟(www.hx95.com),违者必究! 
文章作者:仙剑之鸣 

截断上传大家一定不陌生,可能你也看过很多动画教程,人家都能顺利的上传成功,而但自己操作时却总是失败,为什么会这样? 

其实我一开始接触“截断”这个概念时感到很神奇,也觉得很茫然。神奇的是它竟能突破上传限制,茫然的是什么情况下才可以用?哪些上传能截断,哪些又不能。。。带着这些问题,我试着去找上传,试着用NC去截断,可从来就没有成功过。。。慢慢的就对这个概念模糊了! 


后来,我在拿一个站时,遇到了困难,可用的地方就只有上传,于是被逼着再去研究截断。。。经过那次的成功才发现,截断原来是那么的简单。。。摸清原理之后,它就不那么神奇了。 

也许你曾经用阿D,明小子。。的上传上传过SHE11,其实这些工具也是用“截断”来上传的,而如果每次都盲目的用它来上传,甚至连为什么都不知道,那说实话,就算你用它来拿再多的站也没任何进步!。。。懂得为什么才是最重要的,灵活变通,活学活用才能不断的成长! 


下面和大家分享一下我给截断的一些学习经验:还是那句话,高手请飞过! 

截断的核心,就是chr(0)这个字符 

先说一下这个字符,这个字符不为空(Null),也不是空字符(""),更不是空格! 

当程序在输出含有chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致漏洞产生 

简单举个例子,看下面的代码 
<% 
path="upfiles/picture/" 
file="20121212.jpg" 
upfilename=path & file '最后的上传地址 
%> 
就这段代码中的path为上传的路径,file为生成的文件名,upfilename为上传后的地址,程序表面是没什么问题,但如果path可以由用户自定义(path这个参数往往是从表单或参数传过来的,能够自定义),所以就产生了上传路径截断漏洞 

比如我在表单中把路径改成了“upfiles/1.aspChr(0)” 
这样上传路径就成了 path="upfiles/1.aspChr(0)" chr(0)代表那个截断字符 
这时变量被输出时,就成了upfiles/1.asp 
而不是upfiles/upfiles/1.aspChr(0)20121212.jpg 
很明显,upfile/1.asp就成了she11 

你可以马上做个实验 

把上面的代码修改一下: 

<% 
path="upfiles/1.asp" & Chr(0) 'asp中chr(0)表示截断字符 
file="20121212.jpg" 
upfilename=path & file '最后的上传地址 
response.write upfilename 
%> 

眼见为实,你会发现最后输出的upfilename确实是upfile/1.asp,变量输出是这样,上传时生成文件当然也会这样,这就是大家常听到的路径截断上传! 

上面这个例子非常简单,如果你想学截断,不妨亲手试一下,明白了它的原理,看到了输出的结果,你就会恍然大悟,原来截断是这么的简单! 

本文只讲了路径截断,当然截断的种类也有好几种,原理其实都一样。。。都是利用了这个chr(0)字符。 

至于实操,其它截断。。以后会和大家慢慢分享!
转自:http://bbs.hx95.com/read-htm-tid-19597-fpage-5-skinco-wind.html


其它相关资料:

截断字符上传
2007-10-02 10:31:06     我来说两句      
收藏    我要投稿

来自樱木花盗 blog

截断字符上传的确是一个很聪明的方法! 能想出这一招的人一定是个怪才! 
      其实这一招也很简单!  就是在上传一半的时候 理论上停止了!

  比如找到了一个upfile.asp 但是在上传的时候 遇到扩展名不对的问题时!

 你就用这一招` 比如上传一个1.asp.jpg   不知道你想明白没!

   呵呵! 估计你已经想到了 原理!     就是在上传1.asp.jpg的时候     可以截断上传

过程      结果上传的东西的扩展名就成了     1.asp     webshell就形成了

你也可以上传1.asp 他的提示肯定是不成功!

然后把上传的数据包修改以下   nc 提交   注意如果是上传 1.asp   要在后面加一个空格

那么win2000 在这个漏洞的处理方面没有显现他的卓越功效!

只会认成 1.asp 然后保存 在wwwroot的目录里!形成了你的webshell


      这种漏洞源自所有写程序的人都以函数比较文件的扩展名!     导致了这样的错误  
http://www.2cto.com/Article/200710/19044.html

posted on 2013-05-29 00:17 会飞的兔子 阅读(403) 评论(0)  编辑 收藏 引用 所属分类: 服务器安全

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理