首页
学习
活动
专区
圈层
工具
发布

SQL注入常规Fuzz全记录

前言 本篇文章是在做ctf bugku的一道sql 盲注的题(题目地址:注入题目)中运用了fuzz的思路,完整记录整个fuzz的过程,给师傅们当点心,方便大家加深对web sql注入 fuzz的理解。...2.尝试输入admin/123456,提示密码错误,因此可以确定存在用户admin,这里可能会有师傅要爆破了,但这里题目要求sql注入,我们就按照预期解来吧。 ?...因此可以作为fuzz的判断(当然有些waf是静默waf,就是照样接收你的数据但自己做了处理,返回正常页面,这种fuzz的判断有时候就需要设计下你的payload,这种在以后的文章继续讨论) fuzz特殊字符...可以看到结果是确实不行,并不能产生延时(有的直接被wa,有的没被wa但sql语句无法生效),因此基本可以确认不能用时间盲注跑数据,于是我们只能考虑布尔盲注 (6)尝试布尔盲注 由于无法使用if或者case...总结 1.上述用到的fuzz字典均可在sqlmap的字典以及mysql官方手册中收集 2.这里仅仅是常规的fuzz,但大多数fuzz其实都是相通的,主要是fuzz的判断,fuzz的位置,fuzz payload

2.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    记一次Fuzz绕WAF实现SQL 注入

    0×00简介 本文使用自己编写的Python脚本,实现绕过某WAF限制,实现SQL注入。...先解释一下Fuzz概念,Fuzz是安全测试的一种方法,面对waf无所适从的时候,可以使用Fuzz模糊测试来绕过waf,甚至你可以发现一些意想不到的payload语句。...0×01SQL注入绕waf常用的方法 使用大小写绕过 例如: 使用注释符/**/ #绕过 使用/!**/绕过 根据数据库特性进行绕过,例如mysql数据,使用/*!...5000 union select x,x,x/ 更改user-agent ……. 0×02 使用/**/结合Fuzz绕过 先组建好sql注入本地测试平台,在服务器中安装某WAF狗。...访问搭建好的SQL注入平台. ? 先进行测试过程为:?id=1’ union select 1,2,3—+ 拦截 。 ?id=1’ /union /select 1,2,3—+ 拦截 。 ?

    1.7K30

    构造优质上传漏洞Fuzz字典

    通过思考,我们可以知道如果能根据上传漏洞的场景(后端语言,中间件,操作系统)来生成优质的fuzz字典,然后使用该字典进行fuzz,就能消除以上两个解决方案的弊端!...我们可以根据场景来生成合适的字典,提供的信息越详细,脚本生成的字典越精确。...这时我们就可以使用upload-fuzz-dic-builder.py脚本生成fuzz字典,来进行fuzz。这里我选择Pass-09来给大家演示。...1.利用脚本生成fuzz字典 由于知道我们的后端语言为php,中间件为apache,操作系统为Windows。所以可以利用这些信息生成更精确的fuzz字典。...2.抓包使用burp的Intruder模块对上传名称进行fuzz 抓取upload-labs的Pass-09的上传包,发送到Intruder模块,加载第一步脚本生成的fuzz字典,对上传的包的文件名进行

    1.8K30

    从SQL注入绕过最新安全狗WAF中学习fuzz

    前言 SQL注入并不是很精通,通过实战绕过WAF来进行加强SQL注入能力,希望对正在学习的师傅能有一丝帮助。...发现是不可以的 更换成true=true进行尝试 仍然不行,此时发现当and和后面没有空格的时候就会报错 我们这里尝试用/*/来充当注释符 发现还是被过滤了,此时我们就利用bp来进行fuzz...此时我就想利用它内联注释字符数大于版本号时将其内语句作为注释来进行一个绕过, 测试过程如下 选择暴力破解,设置0-9依次进行爆破 而后得到结果 发现这种利用垃圾字符的内联注释方式无法再次绕过,此时我们去尝试进行其他方法,想到之前的fuzz...database() 那么这里的话我们测试过后就会发现information_schema被过滤了,它俩只要在一起挨着就会被过滤 同时呢,我们也发现利用from的时候也会被过滤 对这两个进行分别fuzz...--+/*%0ainformation_schema.tables*/ where table_schema='security'--+ 得到了全部表 爆列 有了表名的注入,那么注入列名也不是件太难的事情

    62520

    从SQL注入绕过最新安全狗WAF中学习fuzz

    声明 文章首发于先知社区https://xz.aliyun.com/t/11412 前言 SQL注入并不是很精通,通过实战绕过WAF来进行加强SQL注入能力,希望对正在学习的师傅能有一丝帮助。...发现是不可以的 更换成true=true进行尝试 仍然不行,此时发现当and和后面没有空格的时候就会报错 我们这里尝试用/**/来充当注释符 发现还是被过滤了,此时我们就利用bp来进行fuzz...此时我就想利用它内联注释字符数大于版本号时将其内语句作为注释来进行一个绕过, 测试过程如下 选择暴力破解,设置0-9依次进行爆破 而后得到结果 发现这种利用垃圾字符的内联注释方式无法再次绕过,此时我们去尝试进行其他方法,想到之前的fuzz...database() 那么这里的话我们测试过后就会发现information_schema被过滤了,它俩只要在一起挨着就会被过滤 同时呢,我们也发现利用from的时候也会被过滤 对这两个进行分别fuzz...--+/*%0ainformation_schema.tables*/ where table_schema='security'--+ 得到了全部表 爆列 有了表名的注入,那么注入列名也不是件太难的事情

    95430

    干货 | 赏金猎人的fuzz工具和字典总结

    赏金猎人的fuzz工具和字典总结 通过手动输入输入来测试漏洞可能会麻烦。 在当今人们时间和耐心水平较低的时代,手动提供输入以查找目标中的错误/漏洞的想法可能会让人不知所措。...请注意 URL 中的 FUZZ 单词,它将充当 wfuzz 的占位符,以替换单词列表中的值。将插入 userIDs.txt 文件的所有数字 ID 值,替换 FUZZ 关键字。...userId=FUZZ 这里的 -w 是 wordlist 的标志,而 -u 是目标 URL 的标志。其余工作机制与Wfuzz相同。它用 userIDs.txt 值替换了 FUZZ 占位符。...Fuzz字典和参考资料 在上面的例子中,我们已经看到了为什么我们需要一个字典。仅字典是不够的,必须非常适合你的 fuzzing 场景。如果你没有找到任何符合必要场景的词表,请考虑生成你自己的字典。...下面提供了一些流行的字典和参考资料。

    4.9K10

    1.1.1-SQL注入-SQL注入基础-SQL注入原理分析

    SQL注入原理分析 SQL注入背景介绍-SQL语言介绍 sql 结构化查询语言 通用的功能极强的关系数据库标准语言 功能包括查询、操纵、定义和控制四个方面 不需要告诉SQL如何访问数据库,只要告诉SQL...需要数据库做什么 SQL注入产生原因 网络技术与信息技术高速发展,B/S模式具有界面统一,使用简单,易于维护,扩展性好,共享度高等优点,B/S模式越来越多的被应用于程序编写中。...SQL注入核心原理 SQL注入是一种将恶意的SQL代码插入或添加到应用(用户)的输入参数的攻击,攻击者探测出开发者编程过程中的漏洞,利用这些漏洞,巧妙的构造SQL语句对数据库系统的内容进行直接检索或修改...灵活的SQL查询语句+用户输入的数据带入了SQL语句=用户直接操作数据库->SQL注入漏洞 select version(); select id from where id=1; select id...语句,产生SQL注入漏洞 http://test.com/index.php?

    2.3K20

    SQL注入(SQL注入(SQLi)攻击)攻击-联合注入

    页面有显示位时 , 可用联合注入 本次以 SQLi 第一关为案例 第一步,判断注入类型 参数中添加 单引号 ' , 如果报错,说明后端没有过滤参数 , 即 存在注入 ?...id=1' 从数据库的报错中我们可得知 , 最外边的一对单引号是错误提示自带的,我们不用管 我们输入的1 , 两边的一对单引号 , 是SQL拼接参数时使用的 而1 右边的单引号 , 是我们自己输入的...也就是说 , 后台SQL中拼接参数时 , 使用的是单引号 , 固 注入点为 单引号字符串型 第二步,获取字段数 order by 1 , 即 根据第1列排序 , 修改排序的列,如果存在该列,则会正常显示...左边的查询结果显示在上方,右边的查询结果显示在下方 , 前提是两个查询结果的字段数一致 , 如果字段数不一致则会报错 , 这也是我们上一步需要获取字段数的原因  我们输入id为-1 , 由于id没有负数,导致SQL

    3.4K30

    SQL注入攻击(SQL注入(SQLi)攻击)-报错注入

    页面没有显示位 , 但有数据库的报错信息时 , 可使用报错注入 报错注入是最常用的注入方式 , 也是使用起来最方便(我觉得)的一种注入方式 updatexml(1,'~',3); 第二个参数包含特殊字符时...,数据库会报错,并将第二个参数的内容显示在报错内容中 返回结果的长度不超过32个字符 MySQL5.1及以上版本使用 本次以SQLi第一关为案例 第一步,判断注入类型 我们在参数中加入一个单引号 '...id=1' 数据库返回了一个错误 , 从错误来看 , 最外层的一对单引号来自数据库的报错格式 , 我们不用管 1 是我们传递的参数 , 1旁边的一对单引号 , 是SQL中包裹参数的单引号 而 1 右边的一个单引号..., 是我们添加的单引号 也就是说 , 后台SQL中传递参数时 , 参数包裹的就是单引号 , 固 单引号字符串型注入 第二步,脱库 我们先来测试一下 , updatexml()是否能正常报错 ?...schema_name from information_schema.schemata limit 0,1) ),3) -- a 使用分页来查询第几个数据库 , 0开始 接下来可以将'~' 后面的SQL

    3.6K10

    SQL注入(SQL注入(SQLi)攻击)攻击-注入点

    SQL注入被称为漏洞之王 , 是最常用的漏洞之一 , 其中PHP在这方面的贡献最大 SQL注入原理 用户在参数中插入恶意的SQL语句 , 破坏原有的SQL语法结构 , 从而执行攻击者的操作 SQL注入点...注入点可分为两大类: 数字型 和 字符型  其中字符型又可以细分为 单引号字符型 , 双引号字符型 , 单/双引号+括号的字符型 数字型注入 SQL语句拼接参数时 , 直接拼接参数本身 , 格式如下...SELECT * FROM users WHERE id=$id 字符型注入 SQL语句拼接参数时 , 对参数包裹了单引号,双引号,或括号 单引号字符型 : 参数包裹了单引号 , 格式如下 SELECT...$id . '"'; SELECT * FROM users WHERE id=($id)   字符型注入并非只有这三种,SQL语句中可以将单引号,双引号,括号自由拼接。

    2.6K30

    SQL注入-报错注入

    目录 一、报错注入的定义 二、利用报错注入的前提 三、报错注入的优缺点 四、构造报错注入的基本步骤 五、常见的报错注入函数 六、报错注入演示(只演示前三个) 1.利用floor()函数进行报错注入...()函数进行报错注入 (1)获取当前数据库库名 (2)获取所有数据库库名 ---- 一、报错注入的定义 报错注入就是利用了数据库的某些机制,人为地制造错误条件,使得查询结果能够出现在错误信息中...二、利用报错注入的前提 1.页面上没有显示位,但是必须有SQL语句执行错误的信息。 三、报错注入的优缺点 1.优点:不需要显示位,如果有显示位建议使用union联合查询。...2.缺点:需要有SQL语句的报错信息。...四、构造报错注入的基本步骤 构造目标查询语句; 选择报错注入函数; 构造报错注入语句; 拼接报错注入语句; 五、常见的报错注入函数 floor(); extractvalue(); updatexml(

    4.8K10
    领券