前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >精华 | SQL注入万能Bypass技巧

精华 | SQL注入万能Bypass技巧

作者头像
HACK学习
发布2020-03-02 10:00:57
2.7K0
发布2020-03-02 10:00:57
举报
文章被收录于专栏:HACK学习HACK学习

前言

很多同学问注入bypass的一些细节,刚好前几天晚上做了一个梦,梦里进行了一些测试,今天觉得应该记录一下。

本文纯属虚构,如有雷同纯属放屁。

正文

梦里发现了一处mssql报错注入

然后发现有云锁

云锁.jpg(假装有图)

用自己写的的脚本生成垃圾数据

代码语言:javascript
复制
#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测试数据:

代码语言:javascript
复制
云锁:30KB

宝塔:30KB

阿里云:200+键值对

安全狗没测过,有空测一下

建议先抓包手工试一下到底多少垃圾数据合适,没问题之后再上sqlmap,不然容易ban ip

回答几个问题

•为什么不直接在get上加垃圾数据?•因为GET型有长度限制,有时候还没加到能bypass的程度服务器就报错。

•为什么不用一个超长字符串要用这么多键值对?•因为经过测试,超长字符串对于阿里云没用,超多垃圾键值对才有用。

•适用类型有哪些?•在梦里的测试中本方法对于市面上绝大多数waf都可以用。

最后

然后梦就醒了,收拾一下准备去工地搬砖了。

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

本文分享自 HACK学习呀 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 测试数据
      • 回答几个问题
      • 最后
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档