无验证
直接上传一句话木马,之后蚁剑连接即可。记得要加相对地址去连接。在www文件夹下可以找到flag
前端验证
前端验证即在上传时客户端的JavaScript会对文件类型做出限制,这就导致我们无法直接将php类型的一句话木马上传到服务器中,我们有两种方法去绕过
1、关闭JavaScript
在火狐浏览器中关闭JavaScript即可上传成功
2、修改文件后缀,之后抓包再改回php
因为是前端认证,所以在包中修改不会被判断类型
1、把一句话木马的类型改为jpg格式,之后bp抓包再filename中改为php格式
2、forward后 可以看到上传成功
3、蚁剑连接
4、在www下找到flag
.htaccess
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能
在这里的作用是让别的文件以php的方式运行,这个题中f12可以看到代码过滤了很多的文件后缀名,所以我们的思路是以jpg的格式上传,之后上传htaccess文件,就可以让jpg的文件以php的方式运行
不同于前端认证,这是服务器代码的过滤,无法抓包修改后缀名达到效果
1、上传jpg格式的一句话木马
2、上传.htaccess文件
3、蚁剑连接
4、可以看到我们分别上传的两个文件
5、在www下找到flag
mime绕过
1、什么是mime
MIME类型校验就是我们在上传文件到服务端的时候,服务端会对客户端也就是我们上传的文件的Content-Type类型进行检测,如果是白名单所允许的,则可以正常上传,否则上传失败。
其实就是在请求包中的content-type,这道题我们只需要在包中改变content-type的类型就可以了
2、具体过程
1、抓包 将content-type改为image/jpeg
2、上传成功
3、蚁剑连接
4、在www中找到flag
00截断
00截断我的理解是通过%00这一能够达到注释的效果,来使的我们能够得知上传路径,进而得到shell
直接上传会发现php格式被过滤
1、抓包,修改filename与上传路径(有两处 都需要改!!)
2、上传成功
3、蚁剑连接
注意这里的地址
4、可以看到这里的%00后的内容已经被忽略
还是再www中可以找到flag
双写绕过
双写绕过的产生是由于后端在判断是否包含关键字时只删除了一次,所以我们将关键字(这里是php写两次即可)
1、直接上传一句话木马会发现后缀php被删除
2、用bp抓包,将名字改为pphphp,再进行上传
3、此时可以发现,正常的php文件已经上传成功
接下来用蚁剑连接就可以啦,同样的,在www中找到flag
头文件检查
头文件检查不仅需要绕过mime,还会检查上传文件的文件头是否符合要求,因此我们需要在一张图片的结尾添加一句话木马
使用010editor
之后上传文件,抓包,修改content-type为image/png
上传成功,蚁剑连接,在www中找到flag
完结