学习培训 渗透测试,一定要把握各种各样系统漏洞的检验和运用方式。今日我们解析一下dvwa自然环境中sql引入从低等到高級的渗入流程。 手动式发掘Sql引入,最先要发觉引入点。以low级別为例,发觉一个能够键入內容的文本框时,最先检测一下是否存有sql引入。 LowLevel 在 网站安全测试中各自在文本框中键入1和1’开展检测。键入1时,回显一切正常,以下: 键入1’时,提醒不正确。除此之外,我们能够看见,我们在文本框中键入的內容会显示信息在url中,换句话说id主要参数根据get方法传送。 明确了存有引入的点,就刚开始试着引入。根据unionselect1,2……检测该引入点能够显示信息的字段名数。unionselect1,unionselect1,2均一切正常。unionselect1,2,3时出現出错,表明该引入点数最多能够显示信息2个不一样的字段名。 明确该引入点能够显示信息的字段名数以后,根据database()涵数,获得当今数据库查询名字。当今数据库查询名字时“dvwa” 非常必须留意的是:立即用1’unionselectdatabase(),user()开展引入,查询当今数据库查询和客户时,会出错,提醒有三个单引号。这三个单引号是系统再加的,要是用“–”注解掉,就能够一切正常实行了。’–’是mysql数据库查询的单行注解符,并且第二个’-'后边一定要有一个空格符(下边结构的SQL句子都是这般),这儿它把后台管理加上的单引号注解没了。用#注解时,会把submit注解掉。 了解当今数据库查询名字后,能够运用information_schema数据库查询获得当今数据库查询中存有的表。如图所示,dvwa数据库查询中有2个表,各自为:guestbook和users。 了解当今数据库查询及其数据库查询中的表的名字以后,就能够猜解每一表格中的有这些列。以下图示们能够dvwa.users表格中有user和password这2组十分关键的数据信息。得到这一2组数据信息,就能够确立了解登录客户及其该客户对用的登陆密码。 用1’unionselectpassword,userfromdvwa.users—指令查询password和user这多列中的数据信息。多列中的数据信息以下: MediumLevel ID根据下拉列表开展挑选。挑选不一样ID时,URL并没有转变。 网站安全公司该如何漏洞检测与防护 那麼主要参数id并非根据get方法传送的。根据burpsuit抓包软件,看一下爬取的恳求包,发觉主要参数应用post方法传送。能够看见我们提交的id主要参数以下: 根据改动主要参数id后边的引入句子开展引入试着。实际可参照low级別的渗入全过程。 再用1unionselect1,table_namefrominformation_schema.tablewheretable_schem=dvwa指令,试着搜索dvwa数据库查询中的表时提醒Unknowncolumn‘dvwa’in‘whereclause’。因此改成database()涵数获得数据库查询名。Database()涵数获得数据库查询名字时,沒有出現出错。该指令显示信息,dvwa数据库查询中有二张表,各自是:guestbook和users。 了解dvwa中是的2个表的姓名以后,再次查询每一表格中包括那好多个列:1unionselecttable_name,column_namefrominformation-schema.columnswheretable_schema=database()andtable_name=table_name。 由上一句引入检测,能够看见users表格中有user和password多列。将这多列內容导出来,我们就能够获得账号登录数据库查询。用selectpassword,userfromdvwa.users指令,查询password和user多列的內容。 HighLevel 先检测是不是存有引入点。Id=1一切正常,id=1’日报错。能够明确存有sql引入系统漏洞。 运用unionselectdatabase(),user()开展引入,发觉只有显示信息一行內容,那麼能够猜想源码中,对回显的总数,干了限定。 在sql指令中,用#注解,发觉能够回显几行內容。那麼源码中,应当是在id主要参数以后,对显示信息的內容干了限定。#注解掉id主要参数后边的指令,把对回显的限定注解没了。 能够回显以后,后边的引入实际操作与low级別同样。 相反,我们查询一下源代码,能够发觉,在id以后,运用limit句子限定select句子回到的数据信息总数。 |