精华 | SQL注入万能Bypass技巧
时间:2022-07-22
本文章向大家介绍精华 | SQL注入万能Bypass技巧,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
很多同学问注入bypass的一些细节,刚好前几天晚上做了一个梦,梦里进行了一些测试,今天觉得应该记录一下。
本文纯属虚构,如有雷同纯属放屁。
正文
梦里发现了一处mssql报错注入
然后发现有云锁
云锁.jpg(假装有图)
用自己写的的脚本生成垃圾数据
#coding=utf-8
import random,string
from urllib import parse
# code by yzddMr6
varname_min = 5
varname_max = 15
data_min = 20
data_max = 25
num_min = 50
num_max = 100
def randstr(length):
str_list = [random.choice(string.ascii_letters) for i in range(length)]
random_str = ''.join(str_list)
return random_str
def main():
data={}
for i in range(num_min,num_max):
data[randstr(random.randint(varname_min,varname_max))]=randstr(random.randint(data_min,data_max))
print('&'+parse.urlencode(data)+'&')
main()
如果是POST型就直接把垃圾数据放到你要注入的字段前后,如果是GET型就把他转为POST型再放垃圾数据。
第一次可能生成太少了,还是被云锁drop包
多粘贴几次,最后发现在数据包到30KB左右就可以正常注入了
然后就可以查数据了
测试数据
目前为止的bypass测试数据:
云锁:30KB
宝塔:30KB
安全狗没测过,有空测一下
建议先抓包手工试一下到底多少垃圾数据合适,没问题之后再上sqlmap,不然容易ban ip
回答几个问题
•为什么不直接在get上加垃圾数据?•因为GET型有长度限制,有时候还没加到能bypass的程度服务器就报错。
•为什么不用一个超长字符串要用这么多键值对?•因为经过测试,超长字符串对于阿里云没用,超多垃圾键值对才有用。
•适用类型有哪些?•在梦里的测试中本方法对于市面上绝大多数waf都可以用。
最后
然后梦就醒了,收拾一下准备去工地搬砖了。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法