暑假上班第一天,先开始补作业(昨天忘发了)
关于sqlmap的使用
sqlilabs靶场:
sqlmap最基本的参数:-u
sqlmap需要一个能够传参的地方才能使用,这里的注入点是id这个参数,使用的方式是GET
想要改成POST方式有两种方法,一种比较简单的是直接将post的数据复制下来,放到-data里
但是不管哪一种都得抓下包先
这里看到了post的数据,我们需要把整个都放到data里
在这里如果直接写的话,sqlmap会从前到后询问我们是否检测每个参数,如果想优先指定某个则需要在参数的值后面加上“*”,比如指定passwd:
这样它就会先询问我们passwd这个参数
另一种使用post的方法则是将整个抓到的数据存到一个txt文件中,然后直接用-r指定这个文件,参数的优先同上
然后我们开始注入,先直接拿第一关来看,首先是测试连接到给出的url,以及url是否稳定
然后是改变参数的值,看看这个参数是否真实有效(无效的比如上面发送post请求中的submit参数)
接下来告诉我们这个网站用的可能是mysql数据库类型,以及可能有xss,并且会问我们是否跳过其它数据库类型的检测,我们直接选择跳过
随后它会问我们是否要使用所有mysql等级1的检测,我们选否就可以
然后它会开始检测,如果这个点能够被注入,会询问我们是否要继续检测其他参数(如果有其他的参数的话)由于我们只有一个参数,所以是否都一样
最后它会生成检测结果,并将结果保存
查看一下会发现保存目录中一共有三个文件,log,session以及target
其中target记录的是我们给出的url
log中是我们刚才生成的报告
还有一个session.sqlite文件,cat了一下感觉不太对
百度了一下sqlite文件大概知道这是数据库的文件就行
将渗透结果保存了下来之后我们就可以直接注入了
第一个参数:-dbs:列出所有数据库名
在列出数据库名或者其他什么名后,需要将该参数改成大写的首字母来指定,比如-D mysql -tables:指定查询名为mysql的数据库中的表名
然后用-T指定表名查询字段
最后用-C指定字段,dump输出具体数据
常用的参数还有:
--is-dba
查询当前用户是否为最大权限
这里False说明并不是
-users
列出所有用户
-privileges
查看用户的权限
(明显看到root和普通用户的区别)
-current-db
当前使用的数据库
-purge
删除缓存的那些个文件
-level
选择风险等级,感觉一般时候用不上
-passwords
passwords用来破解用户的密码
这里会询问是否要将哈希值存起来用别的工具破解,我们用自带的就行
是否要进行破解
选择字典,没有就直接回车选择默认的就行
是否要用通用密码后缀
成功