反转基因福娃 发表于 2022-12-16 16:53:04

渗透实录-01

写在前面

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

打开站点,php+mysql的常见组合,FreeBSD作为其后端服务器,网站功能简单,只有几个登录口存在动态传参,着实简陋,万能密码尝试无果后直接祭出dirsearch。
https://img2023.cnblogs.com/blog/2275768/202212/2275768-20221216144350181-278923719.png
得到一个info.php(phpinfo)外加一个phpmyadmin。
打开phpmyadmin发现是401认证登录,并且版本非常低,为2.6.1,这个版本存在一个绕过登录漏洞:用户名:localhost'@'@',密码空,测试了下确实可以登录,但是权限太低什么都干不了,鸡肋。
简单手工尝试弱口令,直接以用户名root密码空登录成功。(一开始以为是漏洞,后来发现密码真的是空,手动汗颜=.=)
https://img2023.cnblogs.com/blog/2275768/202212/2275768-20221216144408571-629160827.png
到这里基本上算获得了半个webshell了,运气着实不错。phpmyadmin+root权限的话可以直接写shell或者日志getshell,但是还差个绝对路径,回到站点首页疯狂尝试后没能得到绝对路径。(当局者迷,前面有个phpinfo这里忘记利用了)
于是换个思路,从数据库中找到网站管理员账号密码,登进后台,找个上传的地方直接传马,没有任何过滤,因为直接传的是哥斯拉加密的shell,所以不确定有没有waf,然后就shell了,过程没有一丝波澜,过于简单就不贴图了。(不要问我后台在哪,首页“管理区”几个大字)
代码审计

简单搜了一下网上有几套一样的模板,于是决定简单审一下这套代码。
快速审计的话无非就是全局搜几个关键字,比如upload、fwrite、eval、system、select、insert、file_put_content等等,然后代码里面分析一下有没有被过滤,如果没有再尝试构造语句或者数据包来验证。
把源码打包下回来,本地解压,用编辑器打开文件夹,然后全局搜关键字,发现以下几个漏洞:
1.任意文件读取导致的getshell

先上代码:
https://img2023.cnblogs.com/blog/2275768/202212/2275768-20221216144421569-211628117.jpg
表面上看上去这里有个任意文件上传,但是目录不可控,上传的文件都到tmp目录下了,没啥大用。仔细一看,代码里发现使用了readfile函数,这个函数基本等于命令行的cat和ls,读一个/etc/passwd,构造发包测试如下图:
https://img2023.cnblogs.com/blog/2275768/202212/2275768-20221216144429348-462240179.jpg
成功读出来了,那么思路也就有了。直接读取mysql的配置文件,然后登录phpmyadmin,战斗就结束了。
2.sql注入

简单看了一下,这套源码的注入非常多,但是基本都是登录后的功能,用处不大,唯一一处登录前的注入如下:
https://img2023.cnblogs.com/blog/2275768/202212/2275768-20221216144439238-2061499507.jpg
$ID没经过过滤直接传进sql语句执行,但是测试的时候发现有waf,此洞G。
写在最后

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 渗透实录-01