[网鼎杯 2020 半决赛]faka
解题
不会写网站,做不了代码审计,就记录别人WP的解题思路,再回头来看
- 下载网站源代码,html/applilcation/admin,网站打开admin,跳到管理后台登录页面。
- 目录文件中有tk.sql文件,phpmyadmin先创建数据库,再导入tk.sql。
- 数据库打开表system_user,找到admin/md5后得密码
- md5解密得到admin密码admincccbbb123
- 登录后台-内容管理-添加文章-上传图片,传图片抓包可以抓到两个数据包:
- 到admin/Plugs.php,找到upload、upstate模块,参考了下面这个链接,按理解是修改md5值。代码中,上传文件命名filename会被重命名成md5加上后缀,而且32位md5会被修改成两段。把.php通过md5值加到文件名中,apache解析漏洞到第一个.php就截断了,就变成传上去了.php文件。
https://xz.aliyun.com/t/7838
7. 按上面思路,抓第一个包包把md5值后4位修改成.php,放包。 第二个包中md5后四位也做相应修改。 两次修改要对应上,因为要做对比token,如果不一致,返回“文件上传验证失败”,上传成功后显示“文件上传失败”,但实际上是上传成功了的。 8. 上传路径可以得到是/static/upload/md5前16位/md5后12位.php。 9. 蚁剑连接上传的一句话图片马,根目录flag 10. 还有一种方法是可以从浏览器下载文件/manage/backup/downloadBak?file=…/…/…/…/…/…/flag.txt
|