文件上传

感觉自己好菜啊,sql注入学到崩溃,没办法,决定换个方向试试,这周特地找到文件上传来学习学习,以下出自upload_labs


Pass_01:

这题禁止了除jpg,png等图片文件的其他文件的上传。
方法如下:
1.更改图片文件格式为图片,成功上传,可我真的不知道这样传上去有什么用,可能那种图片马可以吧
附上图片马的生成方法,先写一个1.php马,再有一个1.jpg图片,打开dos,输入如下:
copy 1.jpg/b+1.php 2.jpg
这样2.jpg就是图片马了
2.更改文件格式为图片,然后用burpsuite抓包,在repeater里面修改文件为php,GO,搞定,此时就成功上传文件
3.第三种,也是本题的初衷,屏蔽题目的js脚本,用到火狐的插件NoScript,禁止以下就能直接上传php文件了


Pass_02:

这题看提示,说是检查MIME,百度了一下,就是检查了一下文件类型,改一下Content-Type即可,改成image/ipeg


Pass_03:

这题对于新手我可谓是丧心病狂,过滤了文件之后的“.”漏洞,好在查询之后发现可以php+数字进行绕过
可惜我不知道传上去怎么利用,还是得看看菜刀了


Pass_04:

上一题刚说过的绕过,到这题就绝望的发现,gg了
然后看wp就发现了令人激动的东西!!!
黑名单没有htaccess,于是传入此类型文件,写入如下信息:
SetHandler application/x-httpd-php
作用是将其他类型转化为php
此时再上传一个图片马,就爽歪歪喽


Pass_05:

绝望的发现,htaccess竟然被禁掉了,完了,又不会了。
一看wp,还真是,它这里没有进行大小写过滤,那么这就是漏洞了,传一个5.phP,解决


Pass_06:

崩溃了,htaccess被禁,加上了大小写过滤,还有啥漏洞?
看了wp,发现跟初始代码比又少了一行,没有对结尾的空格进行删除
于是,上传6.php空格,搞定。
但这里得抓包处理,加上空格,直接上传,重命名的时候空格自动就没了好像


Pass_07:

有了之前的经验,做好了心理准备,不怕不怕啦,认真审计代码,发现没有过滤加点的文件
于是构造7.php.,收工!
注:同样在这里,也得通过抓包进行处理,直接重命名的结果会被win自动修正


Pass_08:

还是认真进行代码审计,发现没有对后缀名删除::$DATA,可是这到底是个啥!!!无语了,于是上百度查了查,
发现主要还是让函数不对文件后缀做处理。于是抓包构造8.php::$DATA ,搞定!


Pass_09:

原谅我这题我真的没看出啥毛病,只能看看wp,发现15行竟然变成了加上过滤后的文件后缀,于是开始操作
构造9.php. .(点+空格+点),成功搞定
注意这里不能构造成9.php . (空格+点+空格)或者9.php ..(空格+点+点)
前者过滤完剩余一个空格和一个点,后者完全过滤,都会失败。
注:此处的过滤空格与点的函数deldot(),trim()应该会将连在一起的同类一同删除,并不是只删除一个。


Pass_10:

这题我有几个问题,第一眼看到没有进行大小写绕过,以为可以这样做,可虽然传上去了,但还是被过滤了文件后缀,变成空了,这点我很不理解,明明不在黑名单里。
但是在我之前的.htaccess(SetHandler application/x-httpd-php)之下仍然是可以正常跑起的!!!
但是明显,我的htaccess在这里是无法上传的,看到wp,竟然用到了双写绕过,
于是抓包构造:10.pphphp,搞定。 注意这里不能构造成:10.phphpp
整个过滤从左往右看,第一种没问题,而第二种就删了前3个字母,失去了意义。


Pass_11;Pass_12:

这两个要求%00截断,这个真的没搞懂


Pass_13:

看到了图片马,突然激动起来,之前了解过这样的信息嘛,于是立刻构造上传,搞定!!!构造方法见Pass_01


Pass_14:

方法同上!


Pass_15:

同上!