【图片马的踩坑】PHP报错Unexpected character in input的解决

问题

环境:phpstudy搭建的 Apache2.4.39 + PHP7.3.4 ,配置文件均为默认

在upload-labs练习中,传了一个图片马,但是蚁剑死活连不上,PHP还报错说

1
2
3
4
Warning: Unexpected character in input: '' (ASCII=28) state=0 in C:\Users\Hel1um17\Codes\localhost\index.php on line 144
Parse error: in C:\Users\Hel1um17\Codes\localhost\index.php on line 144
//为了方便起见,index.php为我的图片马,此时为后来我自己测试
//实际情况是,用了auto_prepend_file将图片包含在readme.php中,蚁剑连接readme.php

解决

对比报错的每一行发现发现,每行都含有若干个 <?
将其删去后蚁剑可以正常连接

疑问

但平时看师傅们的视频也没有说特意将 <? 去掉

只是直接在文件末尾加上了后门代码,也可以连接成功

有没有懂的师傅可以解答一下?(已解决)

后记

我后来去Stack Overflow问了这个问题

C3roe 大佬说在 php.ini 中设置了 short_open_tag=On 时会把 <? 当成PHP代码的开头从而开始解析。我将 short_open_tag 设置为了 OFF 就没有报错了

不过我那英语可能没表述清楚,让几个人投了不适合回答,我就把问题删了>﹏<,不过还是感谢歪果仁


【图片马的踩坑】PHP报错Unexpected character in input的解决
https://hel1um17.github.io/2025/02/05/2025-02-05/
作者
Hel1um17
发布于
2025年2月5日
许可协议