CTF-SQL注入(Get)

SQL注入

当Web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。

实验环境

攻击者:Kali Linux(192.168.100.146)
靶机:VMware workstations Pro——Debian 6(32-bit)(192.168.100.132)
注意:当前靶机中并没有flag值,需要通过靶机上面的SQL注入漏洞获取数据库中的内容,登陆网站后台,利用网站web漏洞getshell

实验流程

  1. 实验环境导入
    利用VMware workstations将iso文件作为镜像文件进行安装即可,将攻击机和靶机全部设置成NAT网卡。
  2. 启动靶机,信息探测。
    检测与靶机的网络连通性
    命令:ping -c4 192.168.100.132
    在这里插入图片描述
    端口扫描,服务探测
    命令:nmap -sV 192.168.100.132
    在这里插入图片描述
  3. web漏洞扫描
    工具:owasp-zap(kali中的集成工具)
    设置好目标http://192.168.100.132,点击攻击即开始自动扫描
    在这里插入图片描述
    该web漏洞扫描器首先会对网站内容进行爬取,其次利用规则进行主动扫描,最后将扫描结果进行整理显示。
    在这里插入图片描述
    根据扫描结果发现该网站中存在一个GET类型的SQL注入漏洞可以利用
    在这里插入图片描述
  4. 自动注入
    工具:sqlmap
    a) 获取MySQL中的数据库
    命令:sqlmap -u http://192.168.100.132/cat.php?id=1 --dbs
    在这里插入图片描述
    其中information_schema是数据库中MySQL中默认存在的数据库,photoblog疑似网站使用的后台数据库。
    b) 获取数据库中的数据表
    命令:sqlmap -u http://192.168.100.132/cat.php?id=1 -D photoblog --tables
    在这里插入图片描述
    Users表中可能存储了网站后台用户的用户名和登录密码
    c) 获取数据表中的字段
    命令:sqlmap -u http://192.168.100.132/cat.php?id=1 -D photoblog -T users --columns
    在这里插入图片描述
    尝试获取login以及password两个字段中的内容
    d) 获取数据库中的内容
    命令:sqlmap -u http://192.168.100.132/cat.php?id=1 -D photoblog -T users -C login,password --dump
    在这里插入图片描述
    获取到的密码是经过hash加密后的密码,sqlmap会自动使用默认的字典进行爆破攻击,经过破解得到网站后台登录用户名为admin,密码为P4ssw0rd
  5. 登录网站后台,寻找后台漏洞
    获取网站后台登录地址
    在这里插入图片描述
    通过目录扫描,其中http://192.168.100.132/admin疑似网站后台登录地址。
    在这里插入图片描述
    登录成功
    在这里插入图片描述
    网站中存在文件上传功能,尝试探测是否存在文件上传漏洞;利用msfvenom生成PHP类型的木马,尝试上传。
    在这里插入图片描述
    上传PHP脚本
    在这里插入图片描述
    提示不允许上传PHP类型的文件
    在这里插入图片描述
    尝试进行绕过,首先判断文件上传是前端防御还是后端防御;如果是前端的js代码防御,就不会像服务器发出请求,否则就是后端的代码防御。通过浏览器的网络功能即可查看是否有请求发出。
    在这里插入图片描述
    通过判断是后端防御,后端防御的形式非常多,不同的防御方式对应不同的绕过方式,因为没有拿到网站后台的源代码,所以只能依次进行尝试。首先尝试进行后缀名大小写绕过。
    在这里插入图片描述
    尝试上传
    在这里插入图片描述
    上传成功
    在这里插入图片描述
    使用msfconsole监听端口
    在这里插入图片描述在这里插入图片描述
    访问上传的木马,反弹shell
    在这里插入图片描述在这里插入图片描述
    获取权限
    在这里插入图片描述
CTF(Capture The Flag)是一种信息安全竞赛,通常包含各种类型的信息安全挑战,其中SQL注入(SQL Injection)是一种常见的web安全攻击技术。在CTF的web安全挑战中,选手需要利用网站应用程序的漏洞执行SQL注入攻击,目的是从数据库中获取敏感信息。 SQL注入攻击的核心是利用用户输入与数据库交互时的不当处理,注入恶意的SQL语句。通过这种注入,攻击者可以控制数据库的查询过程,执行包括但不限于数据检索、修改、删除甚至数据库命令的执行等操作。 在CTF中,解决SQL注入问题通常包括以下几个步骤: 1. 发现注入点:选手需要通过各种手段(如测试特殊字符、逻辑判断、时间延迟等)来判断用户输入是否被直接插入到SQL查询中。 2. 构造注入payload:一旦找到注入点,选手需要构造特定的SQL语句来利用这个漏洞,这通常包括逻辑判断、联合查询、子查询等技术。 3. 数据提取:通过构造的SQL注入语句,选手可以提取数据库中的敏感信息,如用户数据、密码哈希值等。 4. 提取flag:在CTF竞赛中,通常存在一个包含“flag”的数据项,选手需要将获取的数据与flag格式对比,最终提交正确的flag格式以获得分数。 SQL注入攻击是非法的,在实际操作中,了解和学习SQL注入是为了更好地保护自己的网站免受此类攻击,而在CTF竞赛中,这种攻击则是为了学习和提高网络安全技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值