RIPS 代码审计 – 第二关(Twig)
发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370
文章来源:红数位 靶场源码: // composer require "twig/twig"require 'vendor/autoload.php'; class Template {private $twig; public function __construct() {$indexTemplate = '' .''; // Default twig setup, simulate loading// index.html file from disk$loader = new Twig\Loader\ArrayLoader(['index.html' => $indexTemplate]);$this->twig = new Twig\Environment($loader);} public function getNexSlideUrl() {$nextSlide = $_GET['nextSlide'];return filter_var($nextSlide, FILTER_VALIDATE_URL); //验证是否获取的实参是否为真正的URL} public function render() {echo $this->twig->render( 'index.html',['link' => $this->getNexSlideUrl()]);}} (new Template())->render(); 该代码在第26行中包含一个跨站点脚本漏洞。有两个过滤器试图确保传递给标记的链接 是一个真正的URL。首先,第filter_var()22行中的 函数检查它是否为有效的URL。然后,在第10行中使用Twig的模板转义,这避免了超出 href属性的情况。仍可以通过以下URL利用此漏洞:?nextSlide=javascript://comment%0aalert(1)。有效负载不包含任何会受到Twig的转义影响的标记字符。同时,它是的有效网址filter_var()。我们使用了JavaScript协议处理程序,然后引入了JavaScript注释 //,然后实际的JS有效负载在换行符之后。单击链接后,将在受害者的浏览器中执行JavaScript有效负载。
- 上一篇:深入理解 https 通信加密过程
- 下一篇:简谈渗透测试各阶段我常用的那些“神器”