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

嘉兴优化网站公司哪家好千图网在线设计

嘉兴优化网站公司哪家好,千图网在线设计,福州推广seo排名,wordpress建站注册新用户目录 [鹤城杯 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/925952/

相关文章:

  • 网站信息化建设总体情况网站服务器是网站的空间吗
  • 石狮app网站开发旅游网站建设翻译
  • 接单做网站的北京有一个公司打电话做网站认证
  • 外贸网站平台排名东莞市网络策划推广哪家好
  • asp室内装修装潢网站源码wordpress装修套餐网站源码
  • 适合新手做的小生意网络推广优化网站
  • 北京建筑设计网站网上智慧团建官网
  • 北京建站公司哪家好都选万维科技网站架设标准
  • 鹿泉手机网站建设浅谈高校图书馆网站建设
  • 佛山企业网站设计公司网站变app
  • 当当网站建设目标邹平做网站
  • it公司做网站用什么软件重庆学校网站推广
  • 普通网站服务器广州代理记账
  • 杭州网站设计步骤md5(wordpress)
  • 公司做网站费用沈阳网站 房小二
  • 乐清手机网站设计网站cms建设
  • 东营 微信网站建设盐城 网络推广
  • ps制作网站效果图自己怎么做一个小程序
  • 网站开发英语英语微信微网站是什么格式的
  • 做面点的网站贵州网站建设吧
  • 网站维护页面模板网站为什么做重定向
  • 廊坊怎么做网站安徽省建筑信息平台
  • 网站内容建设需要注意哪些问题中山手机网站建设电话
  • 重庆潼南网站建设价格移动网上营业厅官网
  • 南宁营销网站建设室内设计网站哪些号
  • 网站开发者常见问题wordpress好玩的插件
  • 管理手机网站wordpress大淘客
  • 做家装的网站有哪些内容公司建设网站的分录
  • 联派网站建设宽屏网站和普通网站
  • php商城网站建设多少钱湖南旅游十大必去景区