渗透测试:详解sqlmap进行POST注入、基于insert的注入(以vulnhub靶机LampSecurity:CTF7为例)

本文详细介绍了通过手工和sqlmap工具进行SQL注入的过程,以LampSecurity:CTF7靶机为例,展示了如何发现并利用POST注入漏洞获取数据库信息,包括手工构造闭合、基于报错的insert型注入以及使用sqlmap自动化注入的步骤。文章强调理解SQL注入原理的重要性,并提供了漏洞发现和利用的实战经验。

目录

写在开头

漏洞发现

手工insert型的报错注入

sqlmap进行POST注入

总结与思考

写在开头

 在上一篇对LampSecurity:CTF7进行打靶的时候,获得ssh的登录凭据是通过拿到apache的shell权限后登录mysql数据库,在数据库中找到了登录凭据。靶机地址、打靶过程详见:

红队打靶:LampSecurity:CTF7打靶思路详解(vulnhub)

 如果读者对这个靶机不敢兴趣,单纯想学习sql注入的知识,也可以继续往后看学习使用sqlmap进行POST注入和基于报错的insert型的手工注入。只不过可能读者就得自己寻找案例进行复现了。

上一篇博客中我们登录管理后台是通过8080端口的登录界面,利用SQL注入的万能密码登录成功。我们并没有对80端口进行渗透研究。同时80端口也存在一个注册和登录页面,这些地方也是有可能存在漏洞的。我们可以注册一个账号,然后研究后续的操作页面是否存在漏洞。

于是我试了试,发现一个确实有一个页面存在SQL注入,可以通过对一些文本框进行POST型的SQL注入,直接把数据库中储存的ssh凭据注入出来。注册一个账号之后,点击Resources——>Training——>Register即可

如下图就是存在SQL注入漏洞的界面:

漏洞发现

 首先肯定要考虑,打靶过程中,漏洞是如何发现的。这里就是试出来的,看见输入框我们就可以输入单引号' ,看看回显会不会报错,如果出现有关sql的报错,那就说明我们输入的单引号参与了SQL的拼接,很有可能出现注入漏洞。如下图:

 我们在每个输入框都输入单引号(Email行要求必须符合email格式),点击Register,看看有没有报错,根据报错信息寻找出现sql注入的位置,如下图:

 还真报错了,看来确实存在SQL注入漏洞。根据这个报错信息我们还可以确认这是MySQL数据库,同时对应的SQL语句是insert型,另外基本每个文本框都可以进行注入。接下来我们开始手工测试。

手工insert型的报错注入

 虽然sqlmap很强大,但工具终究知识工具,我们还是要深入理解漏洞的原理,才可以更深入的使用工具,不仅仅当脚本小子。于是我们就这个案例进行手工注入,研究insert语句相关的单引号闭合构造和基于报错的注入方式。首先我们先根据报错信息,看这个insert的语句:

insert into payment set firstname=' 这里是我们填写First Name的位置 ',lastname = 'aaa';

问题就在于我们如何将这里是我们填写First Name的位置改写为我们的payload,构造合理的闭合。如果我们在First Name的位置填写如下的字符串,即可构成闭合:

a' or 此处填写我们想执行的语句 or '

 那么刚才的insert语句就会变为:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Boss_frank

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值