丽水市网站建设_网站建设公司_营销型网站_seo优化
2025/12/17 21:01:13 网站建设 项目流程

目录

Pass-01(前端绕过)

Pass-02(MIME 验证)

Pass-03(黑名单绕过)

Pass-04(黑名单验证,.htaccess)

Pass-05(黑名单验证,.user.ini 绕过)

Pass-06(黑名单验证,大小写绕过)

Pass-077(黑名单验证,空格绕过)

Pass-088(黑名单验证,点号绕过)

Pass-09(黑名单验证,特殊字符::$DATA 绕过)

Pass-10(黑名单验证,. . 绕过)

Pass-111(黑名单验证,双写绕过)

Pass-12(get 0x00 截断)

Pass-13(post 0x00 截断)


Pass-01(前端绕过

打开浏览器bp代理

打开bp进行拦截

创建一个文件编辑信息如下。保存为1.png

<?php phpinfo(); ?>

选择1.png文件点击上传

打开bp修改拦截的包,将上传的1.png修改为1.php。然后点击Forward放包

返回界面,右键复制链接

打开这个链接,出现如下代表成功上传解析成功

Pass-02(MIME 验证

分析代码,可以看到,后端 PHP 代码只对 content-type 进行了检查 使用 bp抓包,修改上传的 PHP 的 content-type 为 image/png

上传1.php

修改上传的 PHP 的 content-type 为 image/png

复制链接

上传解析成功

Pass-03(黑名单绕过

分析源代码可知,存在黑名单,但黑名单以外的后缀仍可上传,尝试 php3,php5,phtml 等后缀
打开phpstudy,编辑httpd-conf

搜索AddType application/x-httpd-php,把这一行前面的#删除,并且后面显示的.php和.phtml就是可以识别成php文件的后缀,可以自行添加其他的php5等其他的

上传文件

修改文件后缀为.phtml,然后放包

复制链接

我这边打开链接就直接把那个文件下载了,无法正常解析

如果打开链接直接自动下载文件就是php版本不行,换一个低版本的,然后点击重启php服务器

重新打开链接图片成功

Pass-04(黑名单验证,.htaccess

这次的过滤更加严格,但发现还有一个 .htaccess 没有过滤
AddType application/x-httpd-php .jpg这个指令代表着.jpg文件会当做php来解析
,意思是把所有文件都解析为php文件来执行。
新建一个.htaccess文件。写入下面的任意一行代码,第一行代码是之后上传所有的.jpg文件都识别成php文件。
AddType application/x-httpd-php .jpg

第二行代码是之后上传的所有的任意文件都识别解析成php文件

SetHandler application/x-httpd-php

我这里以第二行为例

上传.htaccess文件

继续上传1.png文件

复制链接

打开这个链接,发现这个.png也被当成php文件了,出现下面界面代表成功了

之后记得把.htaccess文件删了,不然后面的关卡上传图片都可以直接通过

Pass-05(黑名单验证,.user.ini 绕过

分析源码,发现连 .htaccess 也给过滤了,但没有过滤 .user.ini 文件
先上传一个以 auto_prepend_file=1.gif 为内容的.user.ini 文件【用户 自定义的配置文件】。.user.ini 文件里的意思是:所有的 php 文件都 自动包含 1.gif 文件,.user.ini 相当于一个用户自定义的 php.ini。然后 再上传一个内容为一句话木马的命名为 1.gif 的文件。上传成功之后, 用 webshell 管理工具添加该图片的路径,但该图片名改为当前目录 下的 php 文件,例如 readme.php,输入密码连接成功。
创建.user.ini文件,输入下面内容
auto_prepend_file=1.gif

创建1.gif木马,写入一句话木马

<?php @eval($_POST["CMD"]) ?>

上传.user.ini文件

然后上传1.gif,并且复制图片链接

打开webshell 管理工具

需要工具的可以点击👆下载

我这里使用中国蚁剑为例

右键空白界面点击添加数据

填入1.gif图片的链接,但是把1.gif修改为readme.php(这个文件一般是说明文件,一般的项目目录下都有)

链接密码是CMD。这个是我们自己在1.gif里面设置的,其他的默认,点击左上角的添加

添加成功就会有一条记录,双击即可打开项目文件,但是我这里出现了错误,应该是php服务器版本的问题,修改版本

点击左上角添加,双击这个链接,发现链接错误,把phpstudy版本切换为带nts的版本就行了

然后再次双击刚刚添加的链接就进来了

右键这条记录选择虚拟终端

打开终端就如同打开服务器的终端,可以任意输入命令(当然仅限于自己的靶场,真实的肯定不可以),比如输入ipconfig

Pass-06(黑名单验证,大小写绕过

这一关同样是后端黑名单,同时过滤掉.htaccess 和.ini。但是没有 使用 strtolower()函数,可以使用大小写绕过黑名单 把.php 格式改为 .Php 上传上去之后,就会自动解析为.php
上传文件

抓包对文件后缀进行修改,修改为1.Php然后放包

复制链接

这里打开图片链接出现一个错误

应该是版本问题,更改phpstudy版本为5.4.45

重新打开网址成功了

Pass-077(黑名单验证,空格绕过)

这一关黑名单,没有使用 trim()去除空格,可以使用空格绕过黑名单抓包
上传文件

抓包修改文件名,在文件名后面添加一个空格符号,然后放包

打开图片链接显示成功

Pass-088(黑名单验证,点号绕过)

这一关黑名单,没有使用 deldot()过滤文件名末尾的点,可以使用文件名后加. 进行绕过

上传文件

抓包修改,文件后面添加一个点符号,然后放包

打开图片链接,显示成功

Pass-09(黑名单验证,特殊字符::$DATA 绕过)

这一关黑名单,没有对::$DATA进行处理 ,可以使用::$DATA进行 处理,可以使用::$DATA进行处理,可以使用::$DATA绕过黑名单
上传文件

抓包修改,文件后面添加

::$DATA

然后放包

复制链接,打开链接报错,去掉::$data符号

刷新网页,显示成功

Pass-10(黑名单验证,. . 绕过)

这一关黑名单,最后上传路径直接使用文件名进行拼接,而且只对文 件名进行 filename= deldot( file_name = deldot( filen ame=deldot(file_name) 操作去除文件名末尾的点,构造后缀绕过黑名单 ,deldot()函数从后向前检测,当检测到末尾的第一个点时 会继续它的检测,但是遇到空格会停下来
上传文件

抓包,修改文件,在文件后面添加点 空格 点,然后放包

打开图片链接,显示成功

Pass-111(黑名单验证,双写绕过)

上传文件
抓包修改,在后缀php中间任意两个字母中间写一个php,比如phphpp或者pphphp
打开图片链接,显示成功

Pass-12(get 0x00 截断)

GET 0x00 截断
但需要php 版本<5.3.4,并且magic_quotes_gpc关闭。
将php服务器版本设置为5.2.17
取消勾选下面的gpc,然后重启服务器
上传文件
抓包修改,第一行的updata/的后面添加1.php%00
然后下面的文件名改为可识别的.png
打开图片链接,去掉1.php后面的字符

刷新网页显示成功

Pass-13(post 0x00 截断)

这一关白名单,文件上传路径拼接生成,而且使用了 post 发送的数据进行拼接, 我们可以控制 post 数据进行 0x00 截断绕过白名单POST 不会对里面的数据自动解码,需要在 Hex 中修改。
上传文件进行抓包,按照下面箭头修改如下两个区域

点击Hex

找到+对应的编码2b,将他修改为00,然后放包

打开图片链接,同样需要删除1.php后面的字符

刷新网页显示成功

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询