[TSCTF-J] Badmac

前言

本题考查sql注入(时间盲注,堆叠注入),文件上传漏洞

一、题目

在这里插入图片描述

二、题解

Part 1 :时间盲注

进入用户中心看到登陆页面,此处万能密码进不去,考虑sql注入

在这里插入图片描述

方法一:

选用sqlmap注入,但需要的时间很长

选择时间盲注得到如下表
在这里插入图片描述
猜测登录的账户在tsctfj_user中,继续注出字段名和字段值得到用户名密码
在这里插入图片描述
方法二:
编写脚本采用二分法进行注入,速度会快很多,这里等我写出来了再补

Part 2:堆叠注入

输入账号密码,登陆成功,进入了会员中心
在这里插入图片描述在信息栏中发现可以修改头像
在这里插入图片描述
尝试传入头像发现暂不开放
在这里插入图片描述
在网站中一番摸索后发现一篇奇怪的文章
在这里插入图片描述在这里插入图片描述
查看该文章居然需要如此多的积分,但我们没有积分,我也不可能去用户中心充值,那就只能继续注入,修改数据库中的数据,要么把我们的积分改多一些,要么就把这篇文章的积分改成0,或者也可以直接在数据库中把文章的内容注出来(都是中文,注入非常慢)

堆叠注入原理
堆叠注入,就是把sql语句堆叠在一起执行,通过闭合前面的查询语句并用; 分隔来执行任意sql语句,只要权限足够就可以经行增删改查。

 select * from users;show databases; 

堆叠注入也有局限性,要求服务器源代码中使用musqli_multi_quiery();(多语句查询函数,即可一次执行多条sql语句),若是使用mysqli_ query(); 则分号后面的语句不会执行,此环境中可使用堆叠注入

注入过程
在这里插入图片描述
在这里插入图片描述
分别使用单引号和双引号闭合用户名得到的提示不同,输入单引号时提示用户登陆失败,则判断后端代码中sql语句使用的单引号
接下来要实现增删改查就必须得到该文章所在的表名以及各字段名,此时可以回顾Part 1中得到的表,猜测文章的表名为tsctfj_art(根据该文章的url地址也可以猜测出),盲注得出字段名(字段太多,用sqlmap极慢)
在这里插入图片描述
在这里插入图片描述
art_points和art_points_detail即为文章所需积分,我们选用update语句来修改数据

atestuserintsctf-j';update tsctfj_art set art_points=0,art_points_detail=0 where art_id=1#

在这里插入图片描述
提示用户登录失败时分号后的语句已经执行,登录上去验证一下发现该文章可以直接阅读,证明注入成功。
在这里插入图片描述

Part 3:上传图片马

提示要以get方式传值才能使用头像功能,我们使用burp来抓包加入这个参数,先点击上传头像后抓到该包
在这里插入图片描述
这里的文件上传在文件名上过滤了php,文件类型也有很多限制,基本只让传图片,我们只能采用图片马(一张正常图片和一句话木马拼接)来上传webshell

在这里插入图片描述
该图片用记事本打开如上所示,在结尾插入一句话木马的同时还可以使图片正常解析
在这里插入图片描述
我们在抓取到的包中加入暗号再发包,提示上传成功,图片马的路径也在报文中了,头像也正常解析了出来
在这里插入图片描述

在这里插入图片描述
按照文件上传路径可以成功打开图片,但此时用蚁剑无法连接,因为这个图片会被服务器以jpg格式解析,图片里面的恶意代码不会生效,我们要成功连接图片马还需要上传解析文件,要让服务器按照我们上传的解析文件中的解析方式将图片解析为php,从而使一句话木马生效
在这里插入图片描述
在这里插入图片描述
上传成功后直接蚁剑连接,在根目录中找到flag
在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值