写好这些配置好相应的数据库内容


发现不足套用模板使用模板框架
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- 页面标题(动态变量) --> <title>{page_title}</title> <style> /* 全局样式 */ body { font-family: Arial, sans-serif; /* 设置默认字体 */ margin: 0; /* 清除默认外边距 */ padding: 0; /* 清除默认内边距 */ } /* 页眉样式 */ header { background-color: #4CAF50; /* 绿色背景 */ color: white; /* 白色文字 */ text-align: center; /* 文字居中 */ padding: 20px; /* 内边距 */ } /* 导航栏样式 */ nav { background-color: #f2f2f2; /* 浅灰色背景 */ display: flex; /* 弹性布局 */ justify-content: space-between; /* 两端对齐 */ padding: 10px; /* 内边距 */ } /* 导航链接样式 */ nav a { color: black; /* 黑色文字 */ text-decoration: none; /* 去除下划线 */ padding: 10px; /* 内边距 */ border-radius: 5px; /* 圆角边框 */ transition: background-color 0.3s ease; /* 悬停动画效果 */ } /* 导航链接悬停效果 */ nav a:hover { background-color: #4CAF50; /* 悬停时绿色背景 */ color: white; /* 悬停时白色文字 */ } /* 内容容器样式 */ .container { max-width: 1200px; /* 最大宽度 */ margin: 0 auto; /* 水平居中 */ padding: 20px; /* 内边距 */ } /* 一级标题样式 */ h1 { font-size: 36px; /* 字体大小 */ font-weight: bold; /* 加粗 */ margin-bottom: 20px; /* 下边距 */ } /* 段落样式 */ p { font-size: 18px; /* 字体大小 */ line-height: 1.5; /* 行高 */ margin-bottom: 20px; /* 下边距 */ } /* 无序列表样式 */ ul { margin-left: 20px; /* 左外边距 */ margin-bottom: 20px; /* 下边距 */ } /* 列表项样式 */ li { margin-bottom: 10px; /* 下边距 */ } </style> </head> <body> <!-- 页眉区域 --> <header> <h1>{heading}</h1> <!-- 动态标题 --> </header> <!-- 导航菜单 --> <nav> <a href="#">首页</a> <a href="#">新闻</a> <a href="#">留言</a> <a href="#">关于</a> </nav> <!-- 主要内容区域 --> <div class="container"> <h1>{subheading}</h1> <!-- 动态副标题 --> <p>{content}</p> <!-- 动态内容 --> <!-- 动态图片(注意:img标签是自闭合标签,不应有</img>) --> <img src="{$item}" width="1000" height="3000" alt="动态图片"> </div> </body> </html> <?php // 输出PHP配置信息(常用于调试,生产环境应移除) phpinfo(); ?>将对应的内容填入模板中可以有效的提高开发效率
每一个用对应的开发方法进行调用即可

呈现如下:

多个模板修改内容所有的都会修改内容
数据库可以插入后端代码语言导致数据泄露 可理解为sql注入
或者在前端插入一个执行代码由于没用调动,因为是后端代码没有执行 但是后端调用模板代码时会对应调用代码

比方说这里phpinfo语句
模板不显示因为时html代码

当用后端代码调用时(就是前面调用模板的代码) 就会出现版本信息等等

这就是执行代码漏洞导致形成后门
修改模板就会用执行漏洞
当然使用别人的模板安全性会高一些 就是别人的开发模板如:smarty(渲染代码用的)

使用第三方模板发现无法直接调用
说明有一定的安全性 但是无法保证绝对安全
总结
自己写的模板有一个 rce的安全问题 第三方没有直接的rce安全问题 但是也是有挖出过漏洞的 只是相对安全
如漏洞:sCVE-2017-1000480 smarty PHP code injection
使用下述内容


关键在于get传递值
使用x值来输入即可进入后门

就是主要表达了用了模板但是渲染的时候一样会出现漏洞这是不可避免的
本省代码逻辑漏洞
第三方插件漏洞(ueditor)
第三方模板漏洞(smarty)
第三方组件漏洞(java居多之前提到过的:shrio)
代码审计是指:插件有没有出现历史漏洞 ,使用的常用模板是否出现漏洞 组件漏洞有哪些历史漏洞没有更新这才是代码审计
java审计中要看组件有没有漏洞成功学到
比如上面练习中的漏洞就是eval函数造成的不用该函数就不会用问题


使用高版本以后就没有漏洞了
像这个漏洞就是 本身没有漏洞但是用到这个模板以后存在漏洞这也是很恶心的地方方便开发的同时也存在安全影响

下节内容逻辑越权 框架开发

黑盒角度来说判断插件脚本主要通过插件工具来识别模板 整理模板特点 (判断方法:端口扫描 数据包特征 识别插件工具)
白盒直接看代码判断是什么模板
代码搜关键字 就是差模板特征
模板就是代码呈现的美观性 框架就是核心代码逻辑 组件就是第三方实现功能的东西
插件做的很单一越难出现漏洞 而越敏感越多就越容易出现漏洞这是必然的
