RIPS 代码审计 – 第二关(Twig)_集群智慧网络安全云
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

RIPS 代码审计 – 第二关(Twig)

发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


RIPS 代码审计 – 第二关(Twig)

文章来源:红数位 靶场源码: // 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有效负载。

RIPS 代码审计 – 第二关(Twig)