应先检查http响应头x-powered-by字段识别框架及版本,若无则通过/robots.txt中/vendor/、/app/、/system/等路径判断框架类型,再抓取首页html搜索@laravel等关键字验证。

快速识别PHP框架类型、版本号及常见漏洞组件,需要同时调用自动化探测和人工可验证的线索提取逻辑。
提取框架指纹信息
在目标网站根目录或任意响应页面中,发起GET请求,检查HTTP响应头中的X-Powered-By字段值,该字段常直接暴露Laravel、Symfony、CodeIgniter等框架名称与版本。
若未返回X-Powered-By,访问/robots.txt→查看是否包含/vendor/、/app/、/system/等典型路径规则,这些路径存在即暗示对应框架结构。
抓取首页HTML源码,搜索关键字:@laravel、php echo app()->version()、,匹配到任意一项即可确认框架归属。
扫描已知高危组件路径
方法一:批量探测敏感路径
构造如下12个路径列表,逐个发送HEAD请求:/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php、/storage/logs/laravel.log、/app/config/database.php、/wp-content/plugins/、/index.php?_method=__construct&method=get&filter[]=phpinfo、/api/v1/debug/info、/debugbar/open、/index.php?_url=/admin/login、/protected/runtime/logs/app.log、/cake/libs/controller/components/auth.php、/system/core/CodeIgniter.php、/yii/framework/base/CApplication.php。
只要任一路径返回200或500且响应体含PHP错误堆栈、类名、数据库配置片段,就立即记录并终止后续探测——【不要等待全部12个请求完成,避免触发WAF限流】。
定位可利用的反序列化入口点
第一步:从所有已获取的PHP文件中筛选含unserialize(、__wakeup(、__destruct(、call_user_func_array(的代码行。
第二步:对每个匹配文件发起带可控参数的GET请求,例如在URL末尾追加?input=O%3A8%3A%22TestClass%22%3A0%3A%7B%7D,观察是否返回“Fatal error: Class 'TestClass' not found”或“__wakeup called”字样。
第三步:若响应中出现明显反序列化特征(如类名回显、魔术方法触发日志),保存该URL及触发参数组合,跳过其余文件。
这一步必须人工核验响应内容,自动化脚本仅负责标记疑似点,不能替代真实payload测试。
导出框架配置泄露快照
访问/.env→若返回200且响应体含DB_HOST=、APP_KEY=、MAIL_PASSWORD=等键值对,立即保存原始响应文本到本地env_leak_$(date +%s).txt。
尝试访问/config/database.php→若返回200且含$connections数组定义,提取host、username、password字段值,用tab分隔写入db_config.txt。
【禁止自动尝试连接数据库或发送邮件,仅提取明文配置】
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











