8bit右位移盲注


字节

1byte(字节)=8bits(位)
两个字节 = 一个汉字


利用右位移进行mysql盲注

select (ascii((substr(user(),1,1))) >> 7)=0;

r的ascii是114,二进制是01110010,右移7位就是0,然后0=0,mysql会输出1(表示是正确的)

select (ascii((substr(user(),1,1))) >> 6)=0;

这个mysql会输出0,因为01 != 0
然后就是猜第三位了,前三位可能是010、011
010的10进制是2,011是3

select (ascii((substr(user(),1,1))) >> 5)=2;

这个mysql会输出0,所以是011
这样循环到最后就可以得到全部的二进制01110010


延伸

在t00ls看到anlfi大牛有延伸性的总结:
1.是HEX的的方式取值 从原来的8次请求 减为了6次请求
具体是a>97>7F>111101>
2.是HEX判断位的取值方式 从原来的6次请求 减为了最少3次请求
具体是a>61>(1-F(16位的哪一位))>6,1=110,1(0=30=11,0)

虽然没太看懂,但是感觉大致应该是缩短了2进制的位数,就像我们其实不用去要二进制的第八位,因为可显字符的最大ascii是01111111,只要知道末七位就好。


位运算

参考文献

  1. and运算(&)
    二进制运算,只有11才为1,其他都是0
    5 & 28
    00101 & 11100 = 00100
    结果为4
    and 1 可以用于判断数字的奇偶性,最末尾位0则表示该数是偶数,为1则表示是奇数

  2. or运算(|)
    相同位只要有一个是1就是1
    5 | 28
    00101 | 11100 = 11101
    结果是29
    or 1 可以用于算出最接近的偶数

  3. xor运算(^)
    相同位的数字如果相同则为0,不同则为1
    00101 ^ 11100 = 11001
    这样的话(a xor b) xor b = a,其中b常用于密钥
    还可以用于交换两个变量的值(不需要用temp变量)

a=a ^ b
b=a ^ b
a=a ^ b

解析:第二步的b=(a ^ b) ^ b=a,第三步的a=(a ^ b) ^ a=b
但是这样的交换有一个缺陷就是一个数的交换结果为0

  1. not运算(~)
    将0和1全部反取,但是这个需要注意符号的问题

  2. 左移(<<)
    a << b 就是将a二进制后左移b位u(在a后面添加b个0),实际上也就是a乘以2的b次方

100 << 2 = 1100100 00 = 400

一般认为a << 1 比 a * 2快,2的幂运算可以用左移来运算

  1. 右移(>>)
    a >> b就是二进制右移b位(去掉未b位),相当于a除以2的b次方(向下取整)
100 >> 2 = 11001 = 25
25 >> 1 = 1100 = 12

二分法100 >> 1、堆的插入

posted @   l3m0n  阅读(868)  评论(4编辑  收藏  举报
编辑推荐:
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
阅读排行:
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· ShadowSql之.net sql拼写神器
· Excel百万数据如何快速导入?
· 无需WebView,Vue也能开发跨平台桌面应用
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
L3m0n
点击右上角即可分享
微信分享提示