刷了一下buuctf的basic部分,稍微记录一下操作。
链接地址
pass-01
首先上传一张图片试试:
这里有回显图片,但是没有文件所在的目录。但是如果点一下图片的话,会发现右键的时候会出现复制文件地址,这个就应该是我们要的目录。
试了试BP抓包修改文件名,但是没用。那再试试绕过前端。看一下源码:
这里判断在jpg、png、gif中任选,但是没有php,所以php上传的时候在这里被卡住,那如何绕过呢,百度了一下,有以下几种方法:
第一种方法不太行得通,第二种不会,试试第三种。因为源码都提示有function checkFile()部分,所以直接在控制台那边执行一下命令就行,就会将对应的代码覆盖。所以构造:function checkFile(){}
然后直接上传一个一句话木马:
上传成功!然后右键复制地址,蚁剑连接一下就完事了。
pass-02
不看源码,不太做得来。源码如下:
其实['type'] == 'image/jpeg'这个地方才是关键,这里只判断了Content-Type,所以直接burp改包,伪造Content-Type就能绕过验证。
但是,我抓包了一下,自动给我生成Content-Type我也很无奈:
访问一下,有东西,证明我的php是可以访问的:
然后又是蚁剑:
pass-03
随便上传了一个东西,发现提示不允许上传asp,aspx,php,jsp后缀文件,那么我们看看能不能从后缀上面动手。
php的其他几个后缀分别是php2、php3、php5、pht、phtml。(好像还有漏了的,自己百度找找)
所以修改文件名为下面几个试试,刚好为.phtml的时候文件可以上传。复制文件地址,然后蚁剑连接一下就完事了。
pass-04
上传一个一句话木马,发现回显:提示:此文件不允许上传!
目测是白名单绕过,然后我们这构造1.php.jpg绕过,原因如下:
Apache服务器有一个特性,会从右往左开始解析文件后缀,如果最右边的扩展名不可识别,就继续往左判断,直到遇到可以识别的后缀为止,所以这里我们上传 1.php.xxxxx 即可绕过
pass-05
发现上一个题目的做法这个题目仍然适用,但是看了源码发现可以用1.PHP绕过(没有统一大小写)
pass-06
1.利用apache解析特性上传1.php.xxxx绕过
2.用BP抓包修改文件名,后缀末尾加空格即可绕过
pass-07
1.利用apache解析特性上传1.php.xxxx绕过
2.用BP抓包修改文件名,后缀末尾加一个点就行 比如:1.jpg.
pass-08
利用apache解析特性上传1.php.xxxx绕过
pass-09
1.利用apache解析特性上传1.php.xxxx绕过
2.查看源码,发现可以将文件名构造成'1.php..'以绕过。
pass-10
这次1.php.jpg不行了,查看源码发现利用str_ireplace函数进行了敏感字替换,那就构造:1.pphphp
网友评论