作家
登录

MySQL注入攻击与防御

作者: 来源: 2017-05-08 16:02:58 阅读 我要评论

MySQL注入进击与防御

下面几点是注入中经常会用到的语句

  • 控制语句操作(select, case, if(), ...)
  • 比较操作(=, like, mod(), ...)
  • 字符串的猜解操作(mid(), left(), rpad(), …)
  • 字符串生成操作(0x61, hex(), conv()(应用conv([10-36],10,36)可以实现所有字符的表示))

SQL注入中的宽字节国内最常应用的gbk编码,这种方法主如果绕过addslashes等对特别字符进行转移的绕过。反斜杠()的十六进制为%5c,在你输入%bf%27时,函数碰到单引号主动转移参加\,此时变为%bf%5c%27,%bf%5c在gbk中变为一个宽字符“縗”。%bf那个地位可所以%81-%fe中心的任何字符。不止在sql注攘闼楝宽字符注入在很多处所都可以应用。

二、测试注入

一、注入常用函数与字符

语句对一个可能的注入点进行测试

三、注释符

以下是Mysql中可以用到的注释符:

Mysql中可以用到的注释符

Examples:

  1. SELECT * FROM Users WHERE username = '' OR 11=1 -- -' AND password = ''
  2. SELECT * FROM Users WHERE id = '' UNION SELECT 1, 2, 3`'; 

四、版本&主机名&用户&库名

版本&主机名&用户&库名

五、表和字段

1. 肯定字段数

(1) ORDER BY

然后,运行smbrelayx,指定被进击者和生成的反向shell,等待连接。

ORDER BY用于断定表中的字段个数

Payload如下:

(2) SELECT ... INTO

关于SELECT ... INTO 的解释可以看这一篇文┞仿SELECT ... INTO解释

SELECT ... INTO

当出现LIMIT时可以用以下语句:

  1. SELECT username FROM Users limit 1,{INJECTION POINT}; 

绕过语句:'='

(3) 断定已知表名的字段数

  1. AND (SELECT * FROM SOME_EXISTING_TABLE) = 1 
  2. SELECT passwd FROM Users WHERE id = {INJECTION POINT}; 

2. 查表名

以下提过几种方法对库中表进行萌芽

查表名

以下提过几种方法对表中列进行萌芽

3. 查列名

六、字符串连接

下面的几条语句都可以用以连接字符

字符串连接

六、前提语句&时光函数

前提语句&时光函数

个中BENCHMARK函数是指履行某函数的次数,次数多时可以或许达到与sleep函数雷同的效不雅

 1/7    1 2 3 4 5 6 下一页 尾页

  推荐阅读

  如何使用vCSA6.5监控CPU、内存和网络

如不雅体系已经连接到互联网,那么进入“Update”标签页,选择“Installed Updates”,之后“Install All Updates”。 在vSphere 6.5中,VMware改换了 vCe>>>详细阅读


本文标题:MySQL注入攻击与防御

地址:http://www.17bianji.com/lsqh/35071.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)