当前位置: 首页 > article >正文

渗透实录-01

写在前面

一次测试中遇到一个有趣的站点,写出来与君分享。

摸点阶段

打开站点,php+mysql的常见组合,FreeBSD作为其后端服务器,网站功能简单,只有几个登录口存在动态传参,着实简陋,万能密码尝试无果后直接祭出dirsearch。

得到一个info.php(phpinfo)外加一个phpmyadmin

打开phpmyadmin发现是401认证登录,并且版本非常低,为2.6.1,这个版本存在一个绕过登录漏洞:用户名:localhost'@'@',密码空,测试了下确实可以登录,但是权限太低什么都干不了,鸡肋。

简单手工尝试弱口令,直接以用户名root密码空登录成功。(一开始以为是漏洞,后来发现密码真的是空,手动汗颜=.=)

到这里基本上算获得了半个webshell了,运气着实不错。phpmyadmin+root权限的话可以直接写shell或者日志getshell,但是还差个绝对路径,回到站点首页疯狂尝试后没能得到绝对路径。(当局者迷,前面有个phpinfo这里忘记利用了)

于是换个思路,从数据库中找到网站管理员账号密码,登进后台,找个上传的地方直接传马,没有任何过滤,因为直接传的是哥斯拉加密的shell,所以不确定有没有waf,然后就shell了,过程没有一丝波澜,过于简单就不贴图了。(不要问我后台在哪,首页“管理区”几个大字)

代码审计

简单搜了一下网上有几套一样的模板,于是决定简单审一下这套代码。

快速审计的话无非就是全局搜几个关键字,比如uploadfwriteevalsystemselectinsertfile_put_content等等,然后代码里面分析一下有没有被过滤,如果没有再尝试构造语句或者数据包来验证。

把源码打包下回来,本地解压,用编辑器打开文件夹,然后全局搜关键字,发现以下几个漏洞:

1.任意文件读取导致的getshell

先上代码:

表面上看上去这里有个任意文件上传,但是目录不可控,上传的文件都到tmp目录下了,没啥大用。仔细一看,代码里发现使用了readfile函数,这个函数基本等于命令行的catls,读一个/etc/passwd,构造发包测试如下图:

成功读出来了,那么思路也就有了。直接读取mysql的配置文件,然后登录phpmyadmin,战斗就结束了。

2.sql注入

简单看了一下,这套源码的注入非常多,但是基本都是登录后的功能,用处不大,唯一一处登录前的注入如下:

$ID没经过过滤直接传进sql语句执行,但是测试的时候发现有waf,此洞G。

写在最后

后利用任意文件读取在其他站点也复现成功,代码比较有年代感,漏洞应该比较多,时间关系没有深挖,留给下一个有缘人吧。


http://www.kler.cn/a/447480.html

相关文章:

  • 什么?Flutter 可能会被 SwiftUI/ArkUI 化?全新的 Flutter Roadmap
  • StarRocks:存算一体模式部署
  • 【序】前端监控:打造高效稳定的用户体验
  • 谷歌建筑下载
  • 纯前端实现更新检测
  • python:用 sklearn 构建线性回归模型,并评价
  • 【数字化】华为数字化转型架构蓝图-2
  • 当你爬着数据,程序突然报JSON格式化异常...(论如何修复异常的JSON)
  • HarmonyOS NEXT 技术实践-基于基础视觉服务实现骨骼点识别
  • Java CountDownLatch 用法和源码解析
  • 3354. 使数组元素等于零
  • 基于Transformer的自编码器模型在故障检测中的应用
  • springmvc的拦截器,全局异常处理和文件上传
  • 蓝桥杯 2024 国 B【选数概率】(AC)
  • 【java面向对象编程】第六弹----封装、继承、多态
  • Androidstudio点击按钮播放声音
  • 如何优雅的关闭GoWeb服务器
  • RK3588 , mpp硬编码yuv, 保存MP4视频文件.
  • TDesign:NavBar 导航栏
  • 未来趋势系列 篇五:自主可控科技题材解析和股票梳理
  • SpringCloud微服务开发(六)ElasticSearch/RESTful风格
  • 如何在Qt中应用html美化控件
  • 进入 Cosmic Red:第十周游戏指南
  • Linux中的mv命令深入分析
  • RAG开发中,如何用Milvus 2.5 BM25算法实现混合搜索
  • 如何深入学习JVM底层原理?