• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

对博彩网站的一次渗透测试GetShell


H4CK

Recommended Posts

(渗透测试、APP逆向破解 合法等保操作等可以加Qq合作 75960992)

0X00 前言

团队A师傅发来个站,问我有没有得搞

1205477-20190716210021148-2113015831.png

正好在搞其他的站,卡住了,开干换个思路。

0x01 信息收集

开burp抓了下包,目标设置了url重写,开了报错,我们随意输入一个控制器就直接报错。

1205477-20190716212638090-222714643.png

获取到web绝对路径。

抓包发现这样的请求

1205477-20190716210200154-788211392.png

随手试了一下burpsuite的dnslog,发现请求过去并回显了,猜测后端使用file_get_contens来获取。

一个可回显ssrf,有什么用呢?

打内网?

尝试file协议,尝试读取文件,发现可以读。

1205477-20190716212750628-423758373.png

但发现返回的内容不完整,猜测有截断,用php://filter协议base64编码一下绕过读取。

1205477-20190716214150300-1841514960.png

解码

1205477-20190716210142962-157535852.png

有一个任意文件读取有什么用呢?

在这之前,其实是有用nmap扫了一下其他端口

1205477-20190716210239133-2093759396.png

开了挺多端口的,一个个测了一下发现999端口开着phpmyadmin。

1205477-20190716212330844-1378752887.png

结合任意文件读取,那么只要我们读取出mysql的账号密码即可进入phpmyadmin,之后的getshell方法就很多了。

thinkphp的目录结构根据官方文档一般都长这样。

1205477-20190716210309373-1090888309.png

而数据库文件一般是放在common/conf下面的。

简单猜了会,尝试读取index控制器。

之前的报错其实已经放出了index控制器在那个模块下面了,就是默认的home模块。

1205477-20190716212948342-1219166669.png

读取

1205477-20190716213416433-653662075.png

没有返回,猜测是application目录改名了,结合之前的审计经验,一般会改为app。

再读取,成功。

1205477-20190716213445770-59152740.png

接下来就是猜数据库文件存放的位置

一般会存放在common模块下面的config.php或者db.php,尝试了一下config.php,命中。

1205477-20190716213557780-2001603904.png

Base64解码得出源文件。

1205477-20190716211737525-1726847497.png

拿到账号密码,直奔phpmyadmin。

输入账号密码,回车,登陆成功。

1205477-20190716212348327-975321408.png

后面拿shell就给A师傅去弄了。

0x02  URL Rewrite的一些疑惑

 题外话:因为之前帮朋友搞了一些站也是这样的,有文件上传直接拿shell,但是没有办法访问,访问提示:

1205477-20190716215115685-1829681704.png

有拿到源码,.htaccess里面有对url重写,比如长这样的。

1205477-20190716210618329-1237609178.png

之前上传没法访问一直以为是重写的问题。

但其实也可能不是,有可能是马儿被杀了缘故,当文件不存在的时候才会提示这样。

在本地测试,拉了个thinkphp 3.2.3的项目,htaccess一样配置。

1205477-20190716210644055-1345474234.png

在根目录下写入个test.php,内容为phpinfo。可以直接访问。

1205477-20190716210658903-1252598787.png

删掉test.php,报错

1205477-20190716210707773-700130500.png

换到二级目录下继续测试:

1205477-20190716210719050-982005267.png

不存在文件的时候同样提示:

1205477-20190716210734878-209091751.png

后面深入研究了一下那份源码发现也不是马儿被杀了的原因,应该由于它的分割符问题。

不是传统的/,而是点号,而且固死了入口模块,上传文件保存的路径是uploads目录,又刚好固死的模块里面又有一个uploads控制器,导致始终没办法访问到uploads目录,传统的文件路径访问与路由冲突了,最终也就没办法访问到uploads目录下的shell。

没想出对于这种路由有啥办法可以解决的,如果有知道的师傅欢迎评论交流。

0x03 拿shell

由于上面的疑惑,生成了我错误的认知,导致我以为拿shell会比较麻烦,我的思路是phpmyadmin 日志方式导出一个符合thinkphp路由的shell到相应的控制器下,以绕过路由的检测。

但A师傅说直接into outfile 到images目录就可以了,那就是mysql版本不高也没有secure_priv的问题,直接导出shell了。

1205477-20190716210821165-1471974377.png

我:emmmmm

0x04 总结

对于rewrite语法,路由不熟悉导致了后续一系列问题,错误的认知还把自己带坑里面去了。

多开脑子容易秀逗。。

  • Like! 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now