电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 1427 人浏览分享

从webshell到代码审计

[复制链接]
1427 0
写在前面

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

摸点阶段

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

QQ截图20221221142430.png

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

打开phpmyadmin发现是401认证登录,并且版本非常低,为2.6.1,这个版本存在一个绕过登录漏洞:用户名:
localhost'@'@',密码空,测试了下确实可以登录,但是权限太低什么都干不了,鸡肋。
简单手工尝试弱口令,直接以用户名root密码空登录成功。(一开始以为是漏洞
后来发现密码真的是空,手动汗颜=.=)

QQ截图20221221142522.png

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

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

代码审计

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

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

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

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

先上代码:

QQ截图20221221142651.png

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

QQ截图20221221142727.png

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

2.sql注入

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

9.png

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

写在最后

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.