一、背景
笔者此前录制了一套XSS的视频教程,在漏洞案例一节中讲解手工挖掘、工具挖掘、代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完,内容有一些关联性,其中手工XSS挖掘篇地址为
回想刚才笔者所看到的URL地址如下
http://permeate.songboy.net/home/index.php?m=tiezi&a=index&bk=6联想起来其控制器文件为tiezi.php,将其打开一看
<?php class tiezi { function __construct() { } public function index() { ..... $data['count'] = $count; $data['page_size'] = $page_size; $data['page_count'] = $page_count; $data['page_num'] = $page_num; displayTpl('tiezi/index', $data); }果然发现了index方法
3.2 找出模板
得到控制器之后,笔者还需要找到模板存放的位置,通常模板与控制器是息息相关,因此可以控制其中找到蛛丝马迹,比如上面的代码当中,最后一行代码为displayTpl函数,从字面意思上可以理解为显示模板,因此笔者通过PHPStorm的跳转功能直接跳过去查看该函数的具体流程,找到代码如下所示
/** * 加载模板文件 * @param $tplPath */ function displayTpl($tplPath, $data = []) { $filePath = "./tpl/$tplPath.php"; if (!is_readable($filePath)) { echo '模板文件' . $filePath . '不存在!'; die; } foreach ($data as $key => $val) { $$key = $val; } require_once $filePath; }在上面代码当中可以看出模板存放于home/tpl目录下,通过文件夹打开查看,如下图所示

3.3 验证位置
通过上面的操作流程已经基本确定控制器与模板的位置,但为了防止意外,还是准确验证一下,在控制器中输出一个字符串1111111,在模板中输出字符串222222222,如果按照笔者之前所预想的,那么这两组字符串都会被输出,参考代码如下
在控制器中加入的测试代码如下
public function index() { echo '11111111111';在模板文件中加入的测试代码如下
222222222222222 <?php $get = $_GET; ?> <section class="section">现在会到浏览器,在当前页面单击鼠标右键,选中查看源代码,如下图所示

