当前位置: 首页 > news >正文

江苏网站建设 博敏网站正规抖音代运营公司排名

江苏网站建设 博敏网站,正规抖音代运营公司排名,网站添加微信分享代码,微商城微网站开发目录 [鹤城杯 2021]EasyP 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]numgame 1、题目 2、知识点 3、思路 [鹤城杯 2021]EasyP 1、题目 2、知识点 php代码审计 3、思路 打开题目,出现一段代码,我们对代码进行审计 这里出现了很多不懂的…

目录

[鹤城杯 2021]EasyP

1、题目

2、知识点

3、思路

[SWPUCTF 2022 新生赛]numgame

1、题目

2、知识点

3、思路


[鹤城杯 2021]EasyP

1、题目

2、知识点

php代码审计

3、思路

打开题目,出现一段代码,我们对代码进行审计

这里出现了很多不懂的函数,下面进行解释

$_SERVER()是一个包含了文件头、路径等信息的数组

例如url:http://127.0.0.1/dir/test.php?id=1

$_SERVER['PHP_SELF']:获取当前执行url的文件

执行结果:/dir/test.php

$_SERVER['REQUEST_URI']:获取当前执行url的文件还有参数

执行结果:/dir/test.php?id=1

basename()函数:

简而言之就是取url中最后一个文件

例如上面的例子,执行结果:/test.php

basename 函数有这样一个特性:在使用默认语言环境设置时,basename() 会删除文件名开头的非 ASCII 字符。

了解了这些函数,接下来就审计一下代码

1、

if (isset($_POST['guess'])) {
    $guess = (string) $_POST['guess'];
    if ($guess === $secret) {
        $message = 'Congratulations! The flag is: ' . $flag;
    } else {
        $message = 'Wrong. Try Again';
    }
}

这一段代码就是通过POST方式上传guess变量,且跟secret变量的值强比较,但是secret变量的值我们不知道,所以这一个也没法突破

2、

if (preg_match('/utils\.php\/*$/i', $_SERVER['PHP_SELF'])) {
    exit("hacker :)");
}

if (preg_match('/show_source/', $_SERVER['REQUEST_URI'])){
    exit("hacker :)");

对上传的url进行正则比较,不能有utils.php、show_source,/i的作用是大小写都可以

3、

if (isset($_GET['show_source'])) {
    highlight_file(basename($_SERVER['PHP_SELF']));
    exit();

上传一个show_source变量

PHP参数解析特性

PHP会自动将参数转换为有效的变量名:
1.删除空白符
2.将特殊字符[+ .转化成下划线_

利用这个特性,就可以绕过对show_source的过滤

所以我们构造payload:

http://node4.anna.nssctf.cn:28798/index.php/utils.php/哈哈?show[source=1

basename(http://node4.anna.nssctf.cn:28798/index.php/utils.php/哈哈?show[source=1)

结果为:/哈哈

这样就绕过了对utils\.php的检测

?show[source=1 执行结果为:show_source=1

注:这里需要加上index.php,这里不懂为什么需要加上index,可能是题目的设计

得到flag:NSSCTF{3f08c921-26a9-459f-b947-8a0254cbdfdb}


[SWPUCTF 2022 新生赛]numgame

1、题目

2、知识点

php代码审计

3、思路

打开题目

根据题目提示,发现到不了题目结果,右键打不开源码,用开发者模式打开会自动关闭网页

先打开开发者模式中的控制台,再访问url就可以看到源码

得到源码

翻看源码

发现NSSCTF{TnNTY1RmLnBocA==},以为是flag,结果不是,看着像base64编码,进行解码

Base64解码 Base64编码 UTF8 GB2312 UTF16 GBK 二进制 十六进制 解密 - The X 在线工具 (the-x.cn)

解码得到:NsScTf.php

访问这个页面,得到源代码

审计代码:

需要我们用get上传一个p参数,然后调用call_user_func()

call_user_func()

上面定义了一个nss类,类中有一个ctf函数,意思就是p参数的值就是ctf函数,然后

call_user_func(ctf)执行这个ctf函数

那么怎么使用类中的函数呢,php中使用双冒号::

在php中双冒号(::)操作符是一种范围解析操作符,又作用域限定操作符。它是对类中的方法的静态引用,可以访问静态、const和类中重写的属性与方法

if (preg_match("/n|c/m",$_GET['p'], $matches))

源代码中还对n和c进行了过滤,但是发现没有对大小写进行检测,所以我们可以大写来绕过检测

构造payload:

/NsScTf.php/?p=NSS2::Ctf

没有回显内容,右键查看源码

得到flag:NSSCTF{061771ca-0a8e-443f-8e5d-9782103ab52e}


这篇文章就先写到这里,哪里不足的或者哪里不懂的欢迎指正

http://www.yayakq.cn/news/25858/

相关文章:

  • 怎么修改php网站wordpress内页锚文本
  • 可以做宣传海报的网站萍乡网站建设行吗
  • 做壁纸壁的网站有什么电商哪个平台好
  • 自己怎么建个网站赚钱吗服务网站建设企业
  • 做网站英文怎么说seo基础入门教程
  • 合肥专业做网站公司有哪些百度在成都有分公司吗
  • 环保网站设计滨州聊城网站建设
  • 网站构建是什么网站备案审核通过后
  • 网站域名一年多少钱企业官网怎么做
  • 58同城盐城网站建设北京做百度网站建设
  • 企业网站备案资料朔州市住房与城乡建设厅网站
  • 用ps切片做网站昆明app制作公司在哪里
  • 商丘做微信网站sqwyy大学网站建设宣传方案
  • 织梦旅游网站模板旅游景点网站建设方案
  • 开厂做哪个网站比较好如何在wordpress中添加背景音乐
  • 定西兰州网站建设中国建筑装饰网饶明富
  • 西安做网站选哪家公司校园网站建设途径
  • 如何替换网站大连建站平台
  • co域名 大网站学校的网站怎么做的
  • 做动态效果的网站网站管理员怎样管理员权限设置
  • 贵阳网站设计案例莱芜网络推广公司排行
  • 梧州网站推广方案做网站和做系统的区别
  • 做神马网站优化排库尔勒网站建设电话
  • 网站建设流程详细手机版网站打开速度慢
  • 广州网站开发债券交站长工具seo综合查询怎么使用的
  • 山东建设执业资格注册中心网站江宁做网站价格
  • 做营销网站设计wordpress 取消置顶
  • 网站后台如何开发seo建站淘客
  • 市面上做网站多少钱装修素材图片都从什么网站找
  • 网站开发与设计岗位wordpress nginx 配置