暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

sql注入_mysql_day08

Dem0 2021-07-26
317

盲注之延时注入:

if()+sleep() 

sleep()函数 相隔一秒后执行 but

如果数据库名字等于aaa 返回10 否则返回0 (类似c中的三木运算)

因为-->

在windows下是很难实现的。
1. windows不是实时操作系统。
2. Sleep(20)说明线程将自己放到阻塞队列当中,让操作系统在20ms后将其放

入就绪队列当中
3. 但如果此时就绪的线程多于1个(一般是这样),它不一定会选中这个线程。
4. 软中断和硬件中断也做不到这点,因为cpu在做某些底层操作时可能关中断。
5. 你可以使用不可屏蔽中断来做,不过未免。。。。。
下面是几种不同的替代方案。
1. 使用VxWorks这样的实时系统,这样可以达到微秒级。
2. 使用软中断也不错,关中断的时间毕竟不多,也不长。
3. 就是做个内核线程了(我曾经做过驱动程序,这是可取的)。
4. 最简单的是提高线程的优先级别,那么在就绪时更可能被调度,当然不是一定                  ,

他很难竞争过内核线程。

select  id from users where sleep(if(mid(database(),1,1)='s',10,0));


这条语句的作用就是 从 database的第一个 开始 截取一个 字符  如果 数据库名字和s相同 则触发sleep函数  

在这里最好利用ascii码进行 判断 因为 直接用字符 自己能看懂但是有一些工具看不懂  或者 字符有可能被转义 比如  在url中 输入--+ 到后台数据库会显示--空格 

比如

 

布尔盲注:

sqli第五关中 首先通过  '进行闭合 然后通过and连接条件 利用left函数  截取第

一个字符串中的指定长度 长度为第二个参数  主要是猜版本  知道 mysql数据库的版本第一个字符为 5   最后 使用 --+ 进行闭合

 and left(version(),1)='5'--+

               

文章转载自Dem0,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论