很多同学问注入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 阿里云:200+键值对 安全狗没测过,有空测一下
建议先抓包手工试一下到底多少垃圾数据合适,没问题之后再上sqlmap,不然容易ban ip
•为什么不直接在get上加垃圾数据?•因为GET型有长度限制,有时候还没加到能bypass的程度服务器就报错。
•为什么不用一个超长字符串要用这么多键值对?•因为经过测试,超长字符串对于阿里云没用,超多垃圾键值对才有用。
•适用类型有哪些?•在梦里的测试中本方法对于市面上绝大多数waf都可以用。
然后梦就醒了,收拾一下准备去工地搬砖了。
本文分享自微信公众号 - HACK学习呀(Hacker1961X),作者:yzddmr6
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2020-02-26
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句