1.7 (实验)如何使用SQLMap进行注入指定数据库、操作系统
第一步:打开目标地址,先手工检查一下是否存在注入点。
http://www.any.com/wcms/show.php?id=33页面正常

http://www.any.com/wcms/show.php?id=33'页面报错

说明存在注入漏洞。下面进行sqlmap注入。
双击桌面的【实验工具】文件夹,其中有一个名为【sqlmap.exe】的快捷方式,双击打开。
第二步:获取当前数据库名。如果事先就知道了这个网站使用的数据库以及数据库服务器操作系统,那么使用sqlmap时就可以直接指定。python sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --dbms mysql 5.0 --current-db
使用的参数是-u,意思是url。当给sqlmap这么一个url的时候,它会判断可注入的参数;判断可以用那种SQL注入技术来注入;识别出哪种数据库;根据用户选择,读取哪些数据。使用--dbms参数用于指定数据库名称是MySQL,数据库版本高于5.0。使用--current-db参数用于指定输出结果是当前数据库的名称。

遇到如下图箭头所示的选择时,直接点击回车,选择默认选项即可。

最终结果如下图:

对最终结果的分析(上图中红框内的部分):
Web服务器的系统是Windows;web应用技术的PHP版本是5.3.29,Apache版本是2.4.10;后台数据库使用的是MySQL,版本大于5.5。当前数据库的名称是cms。
第三步:获取库cms的表名。python sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --dbms mysql 5.0 -D cms –tables
使用的参数是-u,意思是url。使用--dbms参数用于指定数据库名称是MySQL,数据库版本高于5.0。使用参数-D用于指定使用的数据库名称是cms,使用--tables参数用于指定输出结果是当前数据库中表的名称。

最终实验结果如下图:

对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是cms。进一步获取到了cms库所有的表,cms数据库中的数据表有8个,名称分别是cms_article,cms_category,cms_file,cms_friendlink,cms_message,cms_notice,cms_page,cms_users,我们更关注cms_users这个表。根据经验,这里面存储着后台的管理账号和密码。
第四步:指定库名表名列出所有字段。sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --dbms mysql 5.0 -D cms -T cms_users –columns
使用的参数是-u,意思是指定url。使用--dbms参数用于指定数据库名称是MySQL,数据库版本高于5.0。使用参数-D用于指定使用的数据库名称是cms,使用参数-T用于指定使用的数据表名称是cms_users,使用--columns参数用于指定输出结果是当前数据库的cms_user表中列的名称。

最终结果如下:

对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是cms。数据表的名称是cms_users。在这个表中有三个字段,字段名称分别是password,userid,username,字符类型分别是最长是32位的字符型,最长为11位的整型和最长是20位的字符型数据。理论上password和username分别存储着密码和用户名。
第五步:指定库名表名字段列出指定字段sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --dbms mysql 5.0 -D cms -T cms_users -C id,username,password --dump
使用的参数是-u,意思是指定url。使用--dbms参数用于指定数据库名称是MySQL,数据库版本高于5.0。使用参数-D用于指定使用的数据库名称是cms,使用参数-T用于指定使用的数据表名称是cms_users,使用参数-C用于指定使用的数据列名称是id,username和password,还指定了三者的输出顺序,使用--dump参数用于指定输出结果是当前数据库的cms_user表中id列,username列和password列中的内容。

遇到如下图箭头所指的选择时,直接点击回车选择默认选项即可。
方框圈出的位置可以输入1点击回车,也可以直接点击回车。

最终实验结果如下:

对最终结果的分析(上图中红框内的部分):
当前网页使用的数据库名称是cms。数据表的名称是cms_users。在这个表中的id,username和password对应的内容分别是 33,admin 和123456。实验结束。
网友评论