Upload-labs-master闯关日志 发表于 2023-11-19 分类于 一句话木马 首先先进行环境配置:我这里用的是phpstudy 2018Pass 1 ok,首先我们来到第一关,我们先尝试直接传入一句话木马 很显然啊,他这里对上传的文件进行了特殊的要求,因此我们先来看一下他的源代码,看看能不能从源代码入手(F12)很幸运啊,我们找到了源代码中的判断语句 οnsubmit=”return false;” 将无论何时都阻止表单的提交οnsubmit=”return check();” 是否提交表单取决于check()的返回值οnsubmit=”check();” check()的返回值无影响,无论返回什么值都会提交表单 接下来我们只需要对源代码进行更改便可以成功上传(删除判断,加上上传路径)当然,第一关也可以通过修改元素var allow_ext = “.jpg|.png|.gif”;,这里可以看到此关定义了上传文件类型,我们可以通过控制台添加上传文件类型var allow_ext = “.jpg|.png|.gif|.php”; 即可。第一关成功拿下 Pass 2 第二关这里需要利用一个工具Burp Suite 我们先配置一下代理环境将一句话木马的格式改成图片格式上传,用burp suite进行拦截,发送到Repeater,查看内容,将jpg,改回php,点击go。当然,第二关也可以通过 直接上传php文件进行拦截,将(Content-Type: application/octet-stream)进行修改 Content-Type: image/jpegContent-Type: image/pngContent-Type: image/gif ok,第二关也就顺利拿下了 Pass 3 第三关的跟第二关相似,也需要利用到Burp Suite进行修改,但需要进行隐蔽。 具体步骤如上: 这里是需要双写::$data进行越过(服务器对::$DATA进行了防范) *php在windows的时候如果文件名+”::$DATA”会把其之后的数据当成文件流处理,不会检测后缀名。(重点:只能是Windows系统,并且只能是php文件) *上传名字也会有所改变,可以从Response中找到好了,第三关我们也成功通过。 Pass 4 跟之前的方法一样,先打开Burp Suite拦截,在上传区传入一句话代码,将拦截代码发送到Repeater,点击Hex,找到filename=”–.php”,在p(70)与“(22)之间加入81-99任意一个数字 *由于windows系统对于文件名的限制,当0x81~0x99放在文件名结尾时,不符合操作系统命名规范,字符会被自动去掉,文件名结尾的空格和点号也是同理。我们可以利用这点来成功混过安全检查。第四关也就成功拿下了。 Pass 5 第五关可以用::$data,改16进制后缀绕过等方法,这里就不再演示了,不会的可以参考前面的方法。 Pass 6 ok,我们直接来到第六关,先拦截,后发送。我们可以通过更改后缀的大小写,以此来达到绕过检查的目的。*此方法适用于windows系统,且linux系统默认对大小写敏感,非特殊配置,不可使用。 当然,也可以使用修改16进制后缀,双写::$data进行绕过。 Pass 7 接下来来到了第七关,第七关跟前面几关也是十分的类似啊,这关可以通过在php后面添加空格以此来越过检查,具体如下:Pass 8 下面几关的方法雷同,就不具体图片演示了`````` 在PHP后面加. 16进制转换 *Windows下xx.jpg[空格] 或者xx.jpg.这两类文件都是不允许存在的,若这样命名,windows会默认去除空格或点 Pass 9 第九关这里是运用到了白名单绕过和.空格绕过 *利用条件:php在windows的时候如果文件名+”::$DATA”会把其之后的数据当成文件流处理,不会检测后缀名。 且保持”:: $DATA”之前的文件名,他的目的就是让服务器不检查后缀例如:”1.php::$DATA”Windows会自动去掉末尾的::$DATA变成”1.php”重点:只能是Windows系统,并且只能是php文件 Pass 10 ok,我们来到第十关,第十关这里用到的是一种通杀的方法“点+空格+点绕过”,简称.空格. 也可以利用16进制后缀转换绕过。 Pass 11 我们来到本期的最后一关啊,方法也是十分的简单,通过文件名类型双写完成(传输php文件,服务器会删除后缀,所以进行双写绕过)【pass01-pass11总结】. 空格::$DATA十六进制点+空格+点绕过(windows特性)爆破文件后缀