通过代码审计找出网站中的XSS漏洞实战(三)

 

一、背景

笔者此前录制了一套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目录下,通过文件夹打开查看,如下图所示

image

3.3 验证位置

通过上面的操作流程已经基本确定控制器与模板的位置,但为了防止意外,还是准确验证一下,在控制器中输出一个字符串1111111,在模板中输出字符串222222222,如果按照笔者之前所预想的,那么这两组字符串都会被输出,参考代码如下

在控制器中加入的测试代码如下

public function index() {          echo '11111111111';

在模板文件中加入的测试代码如下

222222222222222 <?php $get = $_GET; ?> <section class="section">

现在会到浏览器,在当前页面单击鼠标右键,选中查看源代码,如下图所示

image

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信