Mysql注入绕过安全狗
sql注入闭合检查
sql注入的分类有很多种分法;可以分成数字型和字符型,区别在于是否需要完整闭合。本题中由于我经验不足,试了好久才想到就是简单的双引号加括号就可以闭合了,然后再注释掉后面的内容。
单引号
回显正常结果
双引号
错误回显
这里其实可以简单分析一下,"1 是Get请求传递的参数值,后面的 ")是这里的闭合方式。
双引号加括号 ")(" ,就把前后都闭合了。
闭合结果
接着就简单添加注释,返回正确结果,后面是绕过的正题了。
http://120.25.24.45:30626/?id=1")--+
绕过技巧
当我们发现一个sql注入漏洞,手工注入时。步骤无非是获取数据库名,查询有那些重要的表,再查询哪种重要的字段,从而能够查询重要的数据select column from table。为了获取前面的关键数据,一般基本的格式是
union select xxx from xxxx.xxx where xxx="yyy" and xxx="yyy"
不同的数据库有不同的特性,操作系统的影响,程序语言的弱类型检查;所以我们要有针对性下手。
本题中使用的是Mysql数据库,Ubuntu系统,Apache服务器。
在Mysql中,可以采用以下方法
关键字被检测拦截 ——>内联注释绕过 /*!12342union*/
需要空格,间隔库名表名与关键字 ——> %23%0a,%2d%2d0a. 注释回车
Mysql黑魔法—–>select {x name} from {x user}
具体操作
{{o.name}}
{{m.name}}