upload-labs wp

pass-01

右键查看网页源码

发现是用js判断的直接禁用js上传一句话木马

上传成功

pass-02

之前的禁用js行不通

将一句话木马文件后缀改成png抓个包再改包试试

 

 上传成功  这个应该是判断的content-type是否为图片类型

pass-03

查看源码  用的黑名单过滤

 只过滤了asp aspx php jsp

 去掉注释符使得phtml后缀也能被当作php解析

解析成功

pass-04

更加全面的黑名单绕过

 使用.htaccess绕过

.htaccess是什么:
全称是Hypertext Access(超文本入口) .htaccess文件也被成为分布式配置文件,提供了针对目录改变配置的方法,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用.

.htaccess功能:
文件夹密码保护、用户自定义重定向、自定义404页面、扩展名伪静态化、禁止特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表
很可惜,这么一个强大的功能默认是不开启的 Apache (有伪静态的都可以试试) 

 用法:
AddType application/x-httpd-php .jpg 这个指令代表着.jpg文件会当做php来解析
SetHandler application/x-httpd-php,意思是把所有文件都解析为php文件来执行

新建一个文本 写入”SetHandler application/x-httpd-php”

由于不能直接改成.htaccess 先改成1.htaccess 再去命令行中改

 把.htaccess上传完再把php代码改成png后缀就行了

pass-05 

htaccess也过滤了

试试大小写绕过

pass-06 

使用空格绕过

利用Windows系统的文件名特性。文件名最后增加空格,写成1.php ,上传后保存在Windows系统上的文件名最后的一个空格会被去掉,实际上保存的文件名就是1.php

 

改个包就行

pass-07

trim函数空格也去掉了 

用点绕过

windows特性,自动去掉后缀名中最后的点 

 

改包放包

pass-08 

 ::$DATA文件流特性绕过

在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名

改包

可能出现403

去除::$DATA

pass-09

分析代码 

获取文件名 删除末尾点 获取点之后的字符 转为小写 删除::$DATA 去空

构造1.php. .就行

pass10 

 构造一个 1.pphphp

成功

pass11

 %00截断

在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束 

需要存在上传路径,比如数据包中存在 path: uploads/ ,那么攻击者可以通过修改path的值来构造paylod: uploads/aa.php%00 ,如果程序中检测的是文件的后缀名合法性,而且通过拼接路径和文件名来保存上传的文件,那么攻击者修改了path以后的拼接结果为: uploads/aaa.php%00/2018051413370000.php ,移动文件的时候会将文件保存为 uploads/aaa.php ,从而达到Getshell效果。 

 准备工作

修改php的php.ini文件,将 参数 magic_quotes_gpc 置 off

php版本改成5.2

pass12 

抓包发现以post传输

save_path参数通过POST方式传递,还是利用00截断,因为POST不会像GET对%00进行自动解码,所以需要在二进制中进行修改

去hex里面改%对应的十六进制数00

pass13 

制作图片马

命令行

copy 2.jpg/b +1.php 33.jpg

上传成功

 pass14

方法同13题

getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型及图片高度与宽度。函数成功返回的就是一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。

pass15 

 exif_imagetype() 读取一个图像的第一个字节并检查其签名。如果发现了恰当的签名则返回一个对应的常量,否则返回 FALSE。返回值和 getimagesize() 返回的数组中的索引 2 的值是一样的,但本函数快得多。

把这个扩展打开才行

pass16 

 二次渲染绕过

文件上传成功后,经过二次渲染,所谓二次渲染就是重新再生成一次图片,容易把图片马中的PHP代码修改掉。 

找出没有修改的部分加入木马即可

刚开始部分不同 插入木马

pass17 

条件竞争

这里是条件竞争,先将文件上传到服务器,然后判断文件后缀是否在白名单里,如果在则重命名,否则删除,因此我们可以上传shell.php只需要在它删除之前访问即可,可以利用burp的intruder模块不断上传,然后我们不断的访问刷新该地址即可 

弄两个爆破好了好久终于弄出来了

pass18 

条件竞争 

Apache按从右到左的顺序识别文件后缀,直至找到后缀能匹配配置文件中的设置。遇到不能识别的后缀名便跳过。 

 加后缀中加上一个apache不能识别的后缀 方法与上题类似

 pass19

 

 查看源码加个.就能绕过

 pass20

构造一个数组

 由于没有save_name[1],所以直接绕过了检测

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值