【代码审计】YUNUCMS_v1.0.6 前台反射型XSS跨站脚本漏洞分析

 

0x00 环境准备

QYKCMS官网:http://www.yunucms.com

网站源码版本:YUNUCMSv1.0.6

程序源码下载:http://www.yunucms.com/Download/index.html

测试网站首页:

 

0x01 代码分析

1、漏洞文件位置:/app/index/controller/Tag.php  第1-12行:

  1. <?php  
  2. namespace app\index\controller;  
  3. use think\Db;  
  4.   
  5. class Tag extends Common  
  6. {  
  7.     public function index(){  
  8.         $input = input();  
  9.         $input['title'] = urldecode($input['title']);  
  10. 10.         $this->assign($input);  
  11. 11.         return $this->fetch();  
  12. 12.     }  

这段函数中接收title参数,进行urldecode处理,然后带入引擎解析,可以发现参数未经任何过滤或处理,直接输出到前端,导致程序在实现上存在XSS跨站脚本漏洞,攻击者通过该漏洞可在页面中插入恶意js代码,获得用户cookie等信息,导致用户被劫持。

0x02 漏洞利用

1、构造链接:

http://127.0.0.1/index.php/index/tag/index?title=1111</title><script>alert(/xss/)</script><title>

 

0x03 修复建议

1、建议进行全局防护,对部分单点进行过滤;

2、建议对参数做html转义过滤(要过滤的字符包括:单引号、双引号、大于号、小于号,&符号),防止脚本执行。在变量输出时进行HTML ENCODE处理。 PHP应用:可以使用htmlspecialchars对用户参数进行编码 。

安全代码示例:

  1. <?php  
  2.      $aa=$_GET['dd'];  
  3.      echo htmlspecialchars($aa)."123";  
  4.  ?>  

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

 

猜你喜欢

转载自www.cnblogs.com/xiaozi/p/10053562.html
今日推荐