代码换行符_RIPS 代码审计 第二关(Twig)

8172aa01383d3568b2ef5c31a9b5fada.gif

文章来源:红数位

靶场源码:
// composer require "twig/twig"require 'vendor/autoload.php';class Template {private $twig;public function __construct() {$indexTemplate = ' .'data-5ce-guid="db139ab6-0155-eb11-8da9-e4434bdf6706" data-src="http://p02.5ceimg.com/content/db139ab6-0155-eb11-8da9-e4434bdf6706.png" data-lazy="true" src="http://thumb.5ce.com/images/loading.gif">' .'Next slide ?';// 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有效负载。

ad61e0e0db265fffad94f4036de64fbf.png

推荐文章++++

3a3a42b1e2ad75d7af3e74ac39cf1b45.png

*【代码审计】对另一套钓鱼网站的代码审计

*PHP代码审计入门笔记合集(共20篇)

*Ecshop 4.0 SQL(代码审计从Nday到0day )

04e426800a36a7362eca584e462aa923.png

4052d5905c9e1ae9f19d807da7dfbda0.gif

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页