2018年巅峰极客 Web部分writeup

admin 2024年8月6日13:24:50评论12 views字数 904阅读3分0秒阅读模式

A simple cms writeup

做此题之前刚好做了一道原题,比赛的时候是做到最后一步的,但是出了差错没有出flag,很气。

  • 首先,打开连接,发现是onethink1.0框架。搜索该框架的漏洞,果然发现了getshell利用过程,原理如下: > 该框架是对thinkphp框架的二次开发,会将注册后的用户名内容存入临时php文件中。
    我们使用一句话来作为用户名注册账户,在登录后就将其存入缓存文件,最后访问缓存文件即可完成getshell。

原理比较简单,但是具体利用过程有几个关键点: 1. 注册用户名由于特殊字符不能直接输入进输入框。 2. 存放一句话的临时文件名并不知道。
* 对于问题1,可以通过burp修改包完成。 问题二则需要一定技巧。

  • 首先,使用工具扫描网站路径,发现www.zip文件可以直接下载,解压后发现是onethink打包。此时考虑本地复现,从而解决问题2。
  • 解压至xampp文件夹后,访问本地网页发现并不能成功访问,出现数据库错误字样,这是因为本地数据库没有配置的缘故。此处只能重装onethink来解决。
  • 搜索onethink重装方法,按教程搜索并删除子文件夹中的.lock文件,打开install.php文件,完成安装。
  • 进入注册界面,填入信息后,使用burp拦截并更改,将用户名改为%0a$x=$_GET[a];//(说明:%0a为换行符十六进制,为了在文件中换行,//是注释,将一句话后的无关代码注释掉以正常运行) 2018年巅峰极客 Web部分writeup
  • 用同样的方法注册%0apassthru($x);//用户。
  • 进入登录界面,按顺序依次登入以上两个用户(使用burp改用户名)此时,一句话已写入临时文件中。 2018年巅峰极客 Web部分writeup
  • 使用notepad++文件搜索功能搜索payload,查找到一句话文件所在位置(\Runtime\Temponethink_6d11f0be3af9c28d4120c8fd5fe65a40.php和\Runtime\Temp\onethink_d403acece4ebce56a3a4237340fbbe70.php文件都可以) 2018年巅峰极客 Web部分writeup
  • 之后访问一句话,可以执行shell命令,搜索目录后得到flag。 2018年巅峰极客 Web部分writeup

- source:hachp1.github.io

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月6日13:24:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   2018年巅峰极客 Web部分writeuphttps://cn-sec.com/archives/3039058.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息